123
chenjingwu
2024-04-11 8d006ac357a60d77f086c37f2ae7338530a607f2
123
1个文件已添加
2646 ■■■■■ 已修改文件
force-app/main/default/lwc/lexNewQuoteEntry/lexNexQuoteEntryUtil.js 2646 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/lwc/lexNewQuoteEntry/lexNexQuoteEntryUtil.js
New file
@@ -0,0 +1,2646 @@
export var bflag;
export var oppInfosave;
export var quoLineItemsave;
export var DataStatus;
export var newQuoteFlagex;
export var MultiYearWarrantyTotalPriceExport;
export var newQuoteFlagExp;
export var productStatusUpdatedExp;
export var quoExp;
export var selection_hpExp;
export var options_hpflgExp;
export var fagExp;
export var ListPriceTotalExp;
export var unitPriceTotalExp;
export var errorflg;
export var errorflgw;
export var StrExp;
export var IsQuoteTrialExp;
export var alertExp = '';
export var alfExp = 0;
export var nafgExp = {};
export var flg = false;
export var tStringe =  'No.\t编码\t状态\t名称\tListPrice\t数量\t规格\t医院单价\t医院小计\t赠送\t经销商单价\t经销商小计';
tStringe += '\t多年保修\t保修\tNoDiscount小计';
tStringe += '\t保修期\t通货';
var addproductList = [];
var trade;
//选择报价产品配置列
export var initDataTableToBeproductConfig = {
    columns: [
        {
            label: '产品型号',
            fieldName: 'Asset_Model',
            editable: false,
            cellAttributes: {
                class: {},
                alignment: 'left'
            },
            hideDefaultActions: true,
            initialWidth: 150
        },
        {
            label: 'NMPA状态',
            fieldName: 'SFDA_Status__c',
            type: 'text',
            cellAttributes: {
                class:{
                    fieldName:'SFDAStatuclass'
                },
                alignment: 'left'
            },
            hideDefaultActions: true,
            initialWidth: 150
        },
        {
            label: '供应商名称',
            fieldName: 'VenderName',
            hideDefaultActions: true,
            initialWidth: 150
        },
        {
            label: '主报价价格',
            fieldName: 'ListPrice_Page',
            type: 'number',
            typeAttributes: {
                minimumFractionDigits: '2',
                maximumFractionDigits: '2'
            },
            cellAttributes: {
                class:{
                    fieldName:'ListPricePageclass'
                },
                alignment: 'right'
            },
            hideDefaultActions: true,
            initialWidth: 150
        },
        {
            label: '数量',
            fieldName: 'Quantity__c',
            type: 'number',
            editable: false,
            cellAttributes: {
                class: {},
                alignment: 'right'
            },
            hideDefaultActions: true,
            initialWidth: 150
        },
        {
            label: '规格',
            fieldName: 'Specifications',
            type: 'number',
            cellAttributes: {
                alignment: 'right'
            },
            hideDefaultActions: true,
            initialWidth: 150
        },
        {
            label: '医院单价',
            fieldName: 'UnitPrice_Page__c',
            // editable: true,
            cellAttributes: {
                class: {},
                alignment: 'right',
            },
            type: 'number',
            typeAttributes: {
                minimumFractionDigits: '2',
                maximumFractionDigits: '2'
            },
            hideDefaultActions: true,
            initialWidth: 150
        },
        {
            label: '医院小计',
            fieldName: 'Subtotal__c',
            cellAttributes: {
                alignment: 'right'
            },
            type: 'number',
            typeAttributes: {
                minimumFractionDigits: '2',
                maximumFractionDigits: '2'
            },
            hideDefaultActions: true,
            initialWidth: 150
        },
        {
            label: '多年保修',
            fieldName: 'multiYearWarranty__c',
            type: 'boolean',
            cellAttributes: {
                alignment: 'center'
            },
            hideDefaultActions: true,
            initialWidth: 150
        },
        {
            label: '保修',
            fieldName: 'warrantyType__c',
            type: 'text',
            hideDefaultActions: true,
            initialWidth: 150
        },
        {
            label: '保修年限',
            fieldName: 'GuaranteePeriod__c',
            cellAttributes: {
                alignment: 'center'
            },
            hideDefaultActions: true,
            initialWidth: 150
        },
        {
            label: '预计消耗至',
            fieldName: 'Estimated_ConsumptionDueDate',
            type: 'date',
            typeAttributes:{
                // weekday: "long",
                year: "numeric",
                month: "long",
                day: "2-digit"
            },
            cellAttributes: {
                class:{
                    fieldName:'EstimatedConsumptionDueDateclass'
                },
                alignment: 'center'
            },
            hideDefaultActions: true,
            initialWidth: 150
        },
        {
            label: '库存状态',
            fieldName: 'StorageStatus',
            type: 'text',
            cellAttributes: {
                alignment: 'center'
            },
            hideDefaultActions: true,
            initialWidth: 150
        },
        {
            label: '产品名称',
            fieldName: 'Name',
            type: 'url',
            typeAttributes: {
                label: {
                    fieldName: 'Name__c'
                },
                tooltip: {
                    fieldName: 'website'
                },
                target: '_blank'
            },
            cellAttributes: {
                class:{
                    fieldName:'Nameclass'
                },
                alignment: 'center'
            },
            hideDefaultActions: true,
            initialWidth: 300
        },
        // chenjingwu 3+2多年保修 20240318 start
        {
            label: '延保年限',
            fieldName: 'Learning_Community',
            type: 'picklistColumn',
            editable: true,
            typeAttributes: {
                placeholder:'--无--',
                options:{fieldName: 'Learning_CommunityOptions'},
                value: { fieldName: 'Learning_Community' }
            },
            hideDefaultActions: true,
            initialWidth: 300
        },
        // chenjingwu 3+2多年保修 20240318 end
    ],
    sortInterfaces: false,
    searchColumns: []
};
//产品配套配置列
export var initDataSetProductTablefig = {
    columns: [
        {
            label: '产品配套名',
            fieldName: 'Name',
            type: 'text',
            cellAttributes: {
                alignment: 'left'
            },
            hideDefaultActions: true,
            // initialWidth: 150
        },
        {
            label: '产品配套编码',
            fieldName: 'Product_Set_CD__c',
            type: 'text',
            cellAttributes: {
                alignment: 'left'
            },
            hideDefaultActions: true,
            // initialWidth: 150
        },
        {
            label: '数量',
            fieldName: 'Quantity__c',
            type: 'number',
            cellAttributes: {
                alignment: 'left'
            },
            hideDefaultActions: true,
            // initialWidth: 150
        },
        {
            label: '补足信息',
            fieldName: 'Quote_Select_Info__c',
            type: 'text',
            cellAttributes: {
                class: {},
                alignment: 'left'
            },
            hideDefaultActions: true,
            // initialWidth: 150
        },
        {
            label: '有効',
            fieldName: 'Valid_Status__c',
            type: 'boolean',
            cellAttributes: {
                alignment: 'left'
            },
            hideDefaultActions: true,
            // initialWidth: 150
        },
    ],
    sortInterfaces: false,
    searchColumns: []
};
//新增产品产品配置列
export var initDataProductTablefig = {
    columns: [{
            label: '产品型号',
            fieldName: 'Asset_Model_No__c',
            cellAttributes: {
                alignment: 'left'
            },
            hideDefaultActions: true,
            initialWidth: 110
        },
        {
            label: '产品编码',
            fieldName: 'OT_CODE_no_link__c',
            cellAttributes: {
                alignment: 'left'
            },
            hideDefaultActions: true,
            initialWidth: 120
        },
        {
            label: '产品名称',
            fieldName: 'Name',
            cellAttributes: {
                alignment: 'left'
            },
            hideDefaultActions: true,
            initialWidth: 270
        },
        {
            label: '适用科室',
            fieldName: 'suitDepartment__c',
            type: 'text',
            cellAttributes: {
                alignment: 'left'
            },
            hideDefaultActions: true,
            initialWidth: 100
        },
        {
            label: '代替产品',
            fieldName: 'Alternative_Products__c',
            type: 'text',
            cellAttributes: {
                alignment: 'left'
            },
            hideDefaultActions: true,
            initialWidth: 100
        },
        {
            label: 'NMPA状态',
            fieldName: 'SFDA_Status__c',
            type: 'text',
            cellAttributes: {
                alignment: 'left'
            },
            hideDefaultActions: true,
            initialWidth: 115
        },
        {
            label: 'ListPrice(内贸)',
            fieldName: 'Intra_Trade_List_RMB__c',
            type: 'number',
            cellAttributes: {
                alignment: 'left'
            },
            hideDefaultActions: true,
            initialWidth: 130
        },
        {
            label: 'ListPrice(外贸)',
            fieldName: 'Foreign_Trade_List_US__c',
            type: 'number',
            cellAttributes: {
                alignment: 'left'
            },
            hideDefaultActions: true,
            initialWidth: 130
        },
        {
            label: '规格',
            fieldName: 'Packing_list_manual__c',
            type: 'number',
            cellAttributes: {
                alignment: 'left'
            },
            hideDefaultActions: true,
            initialWidth: 60
        },
    ],
    sortInterfaces: false,
    searchColumns:[]
};
export function localParseInt( input) {
    input += "";
    input = input.split(" ");
    if (input.length > 1) {
        input = input[1];
    } else {
        input = input[0];
    }
    input = input.replace(/,/g, "");
    input = input.replace(/ /g, "");
    if ( input == '' || isNaN( input)) {
        input = 0;
    }
    input = parseInt(input);
    if (isNaN( input)) input = 0.00;
    return input;
}
export function number_format_common (number, decimals, dec_point, thousands_sep) {
    number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
    var n = !isFinite(+number) ? 0 : +number,
      prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
      sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
      dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
      s = '',
      toFixedFix = function (n, prec) {
        var k = Math.pow(10, prec);
        return '' + Math.round(n * k) / k;
      };
    // Fix for IE parseFloat(0.55).toFixed(0) = 0;
    s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
    if (s[0].length > 3) {
      s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
    }
    if ((s[1] || '').length < prec) {
      s[1] = s[1] || '';
      s[1] += new Array(prec - s[1].length + 1).join('0');
    }
    return ( s.join(dec));
}
export function toNum( input) {
    return number_format_common( input, 2, ".", "");
}
export function toNumComma( input) {
    return number_format_common( input, 2, ".", ",");
}
export function toNumComma_One_digit(input) {
    return number_format_common( input, 1, ".", ",");
}
export function localParseFloat( input) {
    input += "";
    input = input.split(" ");
    if (input.length > 1) {
        input = input[1];
    } else {
        input = input[0];
    }
    input = input.replace(/,/g, "");
    input = input.replace(/ /g, "");
    if ( input == '' || isNaN( input)) {
        input = 0.00;
    }
    input = parseFloat(input);
    if (isNaN( input)) input = 0.00;
    return input;
}
//复制按钮change
export function NewQcopyLogic(Check_Your_Clipboard,records,x,targetString,reslut,displayCost,CurrencyIsoCode){
    records=reslut;
    alfExp = false;
    alertExp = '';
    for (var i = 0; i < records.length; i++) {
        x = records[i];
        //判断空
        // x=IfCopyProperties(x);
        targetString += '\r\n' + (i + 1) + '\t' + '=MID(( "_" & "' + x.ProductCode__c + '"),2,LEN("' + '_' + x.ProductCode__c + '")-1)' + '\t' + x.SFDA_Status__c + '\t' + x.Name__c + '\t' + toNumComma(x.ListPrice__c) + '\t' + x.Quantity + '\t' + (x.Qty_Unit__c == null ? '' : x.Qty_Unit__c) + '\t' + toNumComma(x.UnitPrice__c) + '\t' + toNumComma(x.UnitPrice__c * x.Quantity) +
            '\t' + x.Present__c + '\t' + toNumComma_One_digit(x.AgencyUnitPrice__c) + '\t' + toNumComma_One_digit(x.AgencySubtotal__c);
        if (!x.warrantyType__c) {
            x.warrantyType__c = '';
        }
        targetString += '\t' + x.multiYearWarranty__c + '\t' + x.warrantyType__c +
            '\t' + toNumComma(x.NoDiscountTotal__c);
        targetString += '\t' + x.GuaranteePeriod__c;
        ;
        if (displayCost) {
            targetString += '\t' + toNumComma(x.Cost__c) + '\t' + CurrencyIsoCode;
        }
    }
    try {
        console.warn(targetString);
        var tag = document.createElement('textarea');
        tag.setAttribute('id', 'cp_hgz_textarea');
        var strlenght=targetString.replace(/[\u0000-\u007f]/g,"a").replace(/[\u0080-\u07ff]/g,"aa").replace(/[\u0800-\uffff]/g,"aaa").length;
        tag.maxLength=strlenght+666;
        tag.value = targetString;
        document.getElementsByTagName('body')[0].appendChild(tag);
        document.getElementById('cp_hgz_textarea').select();
        document.execCommand('copy');
        document.getElementById('cp_hgz_textarea').remove();
        alfExp = true;
        alertExp = Check_Your_Clipboard;
    } catch (error) {
        alfExp = false;
        alertExp = error;
    }
}
export function productCompareLogic(jzDataToBeproduct,id2Product,t,b){
    debugger
    bflag = b;
    jzDataToBeproduct.forEach(jzdtbt=>{
        var a = jzdtbt.pageObject.Id__c;
        if (a != '') {
            var newProductGuranteePrice = 0;
            var newProductServicePrice = 0;
            var newMaintenance_Price_Year = 0;
            if (t == '外貿') {
                var recordTypeRecord = id2Product[a];
                var y1 = recordTypeRecord.Name;
                var y2 = recordTypeRecord.Foreign_Trade_List_US__c;
                var y3 = recordTypeRecord.Foreign_Trade_Cost_US__c;
                newProductGuranteePrice = recordTypeRecord.Intra_Trade_Foreign_RMB__c;
                newProductServicePrice = recordTypeRecord.NoDiscount_Foreign__c;
                newMaintenance_Price_Year = recordTypeRecord.Repair_Contract_USD__c;
            } else {
                var recordTypeRecord = id2Product[a];
                var y1 = recordTypeRecord.Name;
                var y2 = recordTypeRecord.Intra_Trade_List_RMB__c;
                var y3 = recordTypeRecord.Intra_Trade_Cost_RMB__c;
                newProductGuranteePrice = recordTypeRecord.Intra_Trade_Gurantee_RMB__c;
                newProductServicePrice = recordTypeRecord.Intra_Trade_Service_RMB__c;
                newMaintenance_Price_Year = recordTypeRecord.Maintenance_Price_Year__c;
            }
            // 保修类型
            var newGuranteeType = recordTypeRecord.GuranteeType__c;
            if (!newGuranteeType) {
                var newGuranteeType = '';
            }
            var newProductEntend_gurantee_period_all = recordTypeRecord.Entend_gurantee_period_all__c;
            var oldGuranteeType = jzdtbt.pageObject.GuranteeType__c;
            var oldProductEntend_gurantee_period_all = jzdtbt.pageObject.ProductEntend_gurantee_period_all__c;
            var oldProductGuranteePrice = jzdtbt.ProductGuranteePrice;
            var oldProductServicePrice = jzdtbt.pageObject.productServicePrice__c;
            var oldMaintenance_Price_Year = jzdtbt.Maintenance_Price_Year;
            oldProductServicePrice = localParseFloat(oldProductServicePrice);
            newProductServicePrice = localParseFloat(newProductServicePrice);
            oldProductGuranteePrice = localParseFloat(oldProductGuranteePrice);
            newProductGuranteePrice = localParseFloat(newProductGuranteePrice);
            newProductEntend_gurantee_period_all = localParseFloat(newProductEntend_gurantee_period_all);
            oldMaintenance_Price_Year = localParseFloat(oldMaintenance_Price_Year);
            newMaintenance_Price_Year = localParseFloat(newMaintenance_Price_Year);
            var y4 = recordTypeRecord.SFDA_Status__c;
            var s1 = recordTypeRecord.StorageStatus__c;
            var x1 = jzdtbt.pageObject.Name__c;
            var x2 = jzdtbt.ListPrice_Page;
            var x3 = jzdtbt.Cost_c;
            var x4 = jzdtbt.pageObject.SFDA_Status__c;
            //連続半角スペース対応
            y1 = y1 + '';
            // y1 = y1.replace(/\s+/g, " ");
            x2 = localParseFloat(x2);
            x3 = localParseFloat(x3);
            y2 = localParseFloat(y2);
            y3 = localParseFloat(y3);
            if ((x1 === y1) && (x2 === y2) && (x3 === y3) && (x4 === y4)
                &&
                (oldGuranteeType === newGuranteeType) &&
                (oldProductEntend_gurantee_period_all === newProductEntend_gurantee_period_all) &&
                (oldProductGuranteePrice === newProductGuranteePrice) &&
                (oldProductServicePrice === newProductServicePrice) &&
                (oldMaintenance_Price_Year === newMaintenance_Price_Year)
            ) {} else {
                console.warn('x1 === y1'+(x1 === y1));
            console.warn('x2 === y2'+(x2 === y2));
            console.warn('x3 === y3'+(x3 === y3));
            console.warn('x4 === y4'+(x4 === y4));
            console.warn('oldGuranteeType === newGuranteeType'+(oldGuranteeType === newGuranteeType));
            console.warn('oldProductEntend_gurantee_period_all === newProductEntend_gurantee_period_all'+(oldProductEntend_gurantee_period_all === newProductEntend_gurantee_period_all));
            console.warn('oldProductGuranteePrice === newProductGuranteePrice'+(oldProductGuranteePrice === newProductGuranteePrice));
            console.warn('oldProductServicePrice === newProductServicePrice'+(oldProductServicePrice === newProductServicePrice));
            console.warn('oldMaintenance_Price_Year === newMaintenance_Price_Year'+(oldMaintenance_Price_Year === newMaintenance_Price_Year));
                bflag = false;
            }
            jzdtbt.latestInfo.GuranteeType = newGuranteeType;
            jzdtbt.latestInfo.ProductEntend_gurantee_period_all = newProductEntend_gurantee_period_all;
            jzdtbt.latestInfo.Intra_Trade_Gurantee = localParseFloat(recordTypeRecord.Intra_Trade_Gurantee_RMB__c);
            jzdtbt.latestInfo.Intra_Trade_Service = localParseFloat(recordTypeRecord.Intra_Trade_Service_RMB__c);
            jzdtbt.latestInfo.Maintenance_Price_Year = localParseFloat(recordTypeRecord.Maintenance_Price_Year__c);
            jzdtbt.latestInfo.ProductName = recordTypeRecord.Name;
            jzdtbt.latestInfo.ListPrice = y2;
            jzdtbt.latestInfo.Cost = y3;
            jzdtbt.latestInfo.SFDA_Status = y4;
        }
    });
    return jzDataToBeproduct;
}
export function TimeToString(newDate){
    var value=newDate.toLocaleDateString();
    var value2=value.split('/');
    if(value2[1].length == 1){
        value2[1]='0'+value2[1];
    }
    if(value2[2].length == 1){
        value2[2]='0'+value2[2];
    }
    value=value2[0]+'-'+value2[1]+'-'+value2[2];
    return value;
}
export function saveEvoluationLogic(quoin,oppInfoIn,quoLineItemIn){
    debugger
    var quo ={...{},...quoin};
    quo.Dealer_Final_Price_Page__c = quoin.Dealer_Final_Price_Page__c!=undefined&&quoin.Dealer_Final_Price_Page__c!=='' ?localParseFloat(quoin.Dealer_Final_Price_Page__c):null;
    quo.OCM_Agent1_Price_Page__c = quoin.OCM_Agent1_Price_Page__c!=undefined &&quoin.OCM_Agent1_Price_Page__c!==''? localParseFloat(quoin.OCM_Agent1_Price_Page__c):null;
    quo.MultiYearWarrantyTotalPrice__c = quoin.MultiYearWarrantyTotalPrice__c!=undefined? localParseFloat(quoin.MultiYearWarrantyTotalPrice__c):null;
    quo.Estimation_List_Price__c = quoin.Estimation_List_Price__c!=undefined? localParseFloat(quoin.Estimation_List_Price__c):null;
    quo.QuoteTotal_Page__c = quoin.QuoteTotal_Page__c !=undefined?localParseFloat(quoin.QuoteTotal_Page__c):null;
    quo.Agency1_Profit__c = quoin.Agency1_Profit__c !=undefined?localParseFloat(quoin.Agency1_Profit__c):null;
    quo.Agency1_Profit_Rate__c = quoin.Agency1_Profit_Rate__c!=undefined? localParseFloat(quoin.Agency1_Profit_Rate__c):null;
    quo.Agent1_Agent2_Price_Page__c = quoin.Agent1_Agent2_Price_Page__c!=undefined &&quoin.Agent1_Agent2_Price_Page__c!=='' ?localParseFloat(quoin.Agent1_Agent2_Price_Page__c):null;
    quo.Agency2_Profit__c = quoin.Agency2_Profit__c !=undefined?localParseFloat(quoin.Agency2_Profit__c):null;
    quo.Agency2_Profit_Rate__c = quoin.Agency2_Profit_Rate__c!=undefined? localParseFloat(quoin.Agency2_Profit_Rate__c):null;
    quo.Quote_Adjust_Amount_Page__c = quoin.Quote_Adjust_Amount_Page__c !=undefined&&quoin.Quote_Adjust_Amount_Page__c!==''?localParseFloat(quoin.Quote_Adjust_Amount_Page__c):null;
    console.warn(quoin.Quote_Adjust_Amount_Page__c);
    console.warn(quoin.Quote_Adjust_Amount_Page__c !=undefined && quoin.Quote_Adjust_Amount_Page__c!=='');
    console.warn(quoin.Quote_Adjust_Amount_Page__c !=undefined);
    console.warn(quoin.Quote_Adjust_Amount_Page__c!='0');
    quo.Quote_Adjust_Calculate__c = quoin.Quote_Adjust_Calculate__c !=undefined&&quoin.Quote_Adjust_Calculate__c!==''?localParseFloat(quoin.Quote_Adjust_Calculate__c):null;
    quo.Stocking_Price__c = quoin.Stocking_Price__c!=undefined? localParseFloat(quoin.Stocking_Price__c):null;
    quo.Discount_Amount__c = quoin.Discount_Amount__c !=undefined?localParseFloat(quoin.Discount_Amount__c):null;
    quo.AgencyDiscount__c = quoin.AgencyDiscount__c !=undefined?localParseFloat(quoin.AgencyDiscount__c):null;
    quo.Discount_Amount_Calculate__c  = quoin.Discount_Amount_Calculate__c !=undefined?localParseFloat(quoin.Discount_Amount_Calculate__c):null;
    debugger
    quo.PriceRefreshDate__c  =quoin.PriceRefreshDate__c? TimeToString(new Date(quoin.PriceRefreshDate__c)):null;
    quo.CreatedDate  =quoin.CreatedDate? TimeToString(new Date(quoin.CreatedDate)):null;
    quo.Quote_Expiration_Date__c =quoin.Quote_Expiration_Date__c? TimeToString(new Date(quoin.Quote_Expiration_Date__c)):null;
    quo.Agency1__c =quoin.Agency1__c? quoin.Agency1__c:null;
    quo.Agency2__c =quoin.Agency2__c? quoin.Agency2__c:null;
    //预测金额修改 fy
    quo.OCM_Sales_Forecast__c = quoin.OCM_Sales_Forecast__c!=undefined? localParseFloat(quoin.OCM_Sales_Forecast__c):null;
    //预测金额修改 fy
    var oppInfo ={...{},...oppInfoIn};
    oppInfo.Wholesale_Price__c =oppInfoIn.Wholesale_Price__c!=undefined? localParseFloat(oppInfoIn.Wholesale_Price__c):null;
    oppInfosave = oppInfo;
    var quoitemList = [...[],...quoLineItemIn];
    quoitemList.forEach(quoitem=>{
        debugger
        quoitem.pageObject.Quantity__c = quoitem.Quantity__c;
        quoitem.pageObject.UnitPrice_Page__c = localParseFloat(quoitem.UnitPrice_Page__c);
        quoitem.pageObject.AgencySubtotal__c = localParseFloat(quoitem.AgencySubtotal__c);
        quoitem.pageObject.AgencyUnitPrice__c = localParseFloat(quoitem.AgencyUnitPrice__c);
        quoitem.pageObject.ListPrice_Page = localParseFloat(quoitem.ListPrice_Page);
        quoitem.UnitPrice_Page__c = localParseFloat(quoitem.UnitPrice_Page__c);
        quoitem.AgencySubtotal__c = localParseFloat(quoitem.AgencySubtotal__c);
        quoitem.AgencyUnitPrice__c = localParseFloat(quoitem.AgencyUnitPrice__c);
        quoitem.ListPrice_Page = localParseFloat(quoitem.ListPrice_Page);
        quoitem.pageObject.multiYearWarranty__c = quoitem.multiYearWarranty__c;
        quoitem.pageObject.GuaranteePeriod__c = quoitem.GuaranteePeriod__c;
        quoitem.pageObject.warrantyType__c = quoitem.warrantyType__c;
        quoitem.pageObject.NoDiscountTotal__c = localParseFloat(quoitem.NoDiscountTotal__c);
        quoitem.NoDiscountTotal__c = localParseFloat(quoitem.NoDiscountTotal__c);
        // quoitem.pageObject.SFDA_Status__c = quoitem.SFDA_Status__c;
        quoitem.pageObject.Name__c = quoitem.Name__c;
        quoitem.pageObject.Subtotal__c = localParseFloat(quoitem.Subtotal__c);
        quoitem.Subtotal__c = localParseFloat(quoitem.Subtotal__c);
        quoitem.Cost_Subtotal_c = localParseFloat(quoitem.Cost_Subtotal_c);
    });
    quoLineItemsave = quoitemList;
    return  quo;
}
export function jzProductsearchLogic(result){
    debugger
    var jzProductData =[...[],...result];
    jzProductData.forEach(izpd=>{
        izpd.Asset_Model_No__c = izpd.Product2.Asset_Model_No__c;
        izpd.OT_CODE_no_link__c = izpd.Product2.OT_CODE_no_link__c;
        izpd.Name = izpd.Product2.Name;
        izpd.suitDepartment__c = izpd.Product2.suitDepartment__c;
        izpd.Alternative_Products__c = izpd.Product2.Alternative_Products__c;
        izpd.SFDA_Status__c = izpd.Product2.SFDA_Status__c;
        izpd.SFDA_Status__c = SFDAtranslate(izpd.SFDA_Status__c);
        izpd.Intra_Trade_List_RMB__c = izpd.Product2.Intra_Trade_List_RMB__c;
        izpd.Foreign_Trade_List_US__c = izpd.Product2.Foreign_Trade_List_US__c;
        izpd.Packing_list_manual__c = izpd.Product2.Packing_list_manual__c;
    });
    return jzProductData;
}
export function additionaljzProductLogic(selectvlue,Listvalue,tradec,IsQuoteTrial){
    IsQuoteTrialExp = IsQuoteTrial;
    debugger
    var LineNoList = [];
    Listvalue.forEach(lsv=>{
        lsv.lineNo = localParseInt(lsv.lineNo);
        if(lsv.lineNo){
            LineNoList.push(lsv.lineNo);
        }
    });
    var maxLineNo = FindMaximumMalue(LineNoList);
    maxLineNo += 1;
    // var newvalueList = [];
    selectvlue.forEach(selectv=>{
        console.log('123');
        debugger
        alertExp = '';
        // var newvalue = {...{},...selectv};
        // var Intra_Trade_Gurantee_RMB = selectv.Product2.Intra_Trade_Gurantee_RMB__c;
        // var GuranteeType = selectv.Product2.GuranteeType__c;
        //是否登录报价
        if(selectv.Product2.Estimation_Entry_Possibility__c=='×' ){
            var Estimation_Entry_Possibility = true;
        }else{
            var Estimation_Entry_Possibility = false;
        }
        //内贸成本
        if(selectv.Product2.Intra_Trade_Cost_RMB__c > 0 ){
            var CostFlag= false;
        }else{
            var CostFlag = true;
        }
        //内外贸
        trade = tradec;
        //内贸报价金额
        var Intra_Trade_List_RMB__c = selectv.Product2.Intra_Trade_List_RMB__c;
        //外贸报价金额
        var Foreign_Trade_List_US__c = selectv.Product2.Foreign_Trade_List_US__c;
        //外贸成本
        var Foreign_Trade_Cost_US__c = selectv.Product2.Foreign_Trade_Cost_US__c;
        //外贸多年保 取产品主数据上的金额以及报价 精琢技术 wql  start
        // var Intra_Trade_Gurantee_USD = selectv.Product2.Intra_Trade_Foreign_RMB__c;
        // var Intra_Trade_Service_USD = selectv.Product2.NoDiscount_Foreign__c;
        // var Maintenance_Price_Year_USD = selectv.Product2.Repair_Contract_USD__c;
        if(trade == "CNY") {
            if(Estimation_Entry_Possibility){
                alertExp = '产品未登录报价时不可报价!';
            }else if(CostFlag){
                alertExp = '产品的成本为空时不可报价!';
            }else if(!Intra_Trade_List_RMB__c||Intra_Trade_List_RMB__c<0){
                alertExp = '产品的报价金额为空时不可报价!';
            }else{
                SetProductId(maxLineNo, selectv);
            }
            //外贸
        }else if(trade == "USD"){
            if(Estimation_Entry_Possibility){
                alertExp = '产品未登录报价时不可报价!';
            }
            else if(!Foreign_Trade_List_US__c||Foreign_Trade_List_US__c<0 ){
                alertExp = '产品的报价金额为空时不可报价!';
            }else if(!Foreign_Trade_Cost_US__c||Foreign_Trade_Cost_US__c<0){
                 alertExp = '产品的成本为空时不可报价!';
            }else{
                SetProductId(maxLineNo, selectv);
            }
        }
        maxLineNo++;
    });
    Listvalue = Listvalue.concat(addproductList);
    addproductList = []
    return Listvalue;
}
export function FindMaximumMalue(value){
    if(value.length!=0){
        var max = getMaximin(value,"max");
    }else{
        var max = 0;
    }
    return max;
}
function getMaximin(arr,maximin) {
    if(maximin=="max") {
        return Math.max.apply(Math,arr);
    }
    else if(maximin=="min") {
        return Math.min.apply(Math, arr);
    }
}
function SetProductId(lineno,selectv){
    console.log(selectv);
    //fy DB202312538864 2024.02.02 start
    // var Product2 = {};
    // var PricebookEntry = {Product2:Product2};
    // var pageObject = {};
    // var addobj = {PricebookEntry:PricebookEntry,
    //                 latestInfo:latestInfo,
    //                 pageObject:pageObject};
    // var attributes1 = {type: "PricebookEntry"};
    // var attributes2 = {type: "Product2"};
    // var attributes3 = {type: "QuoteLineItem"};
    var Product2 = {};
    var PricebookEntry = {Product2:Product2};
    var latestInfo = {};
    var pageObject = {PricebookEntry:PricebookEntry,PricebookEntryId:''};
    var addobj = {latestInfo:latestInfo,
                    pageObject:pageObject};
    //fy DB202312538864 2024.02.02 end
    var Asset_Model_No__c = selectv.Product2.Asset_Model_No__c;
    var Product2Id = selectv.Product2Id;
    var SFDA_Status__c = selectv.Product2.SFDA_Status__c
    var SFDA_Status = selectv.Product2.SFDA_Status__c;
    var Estimated_ConsumptionDueDate__c = selectv.Product2.Estimated_ConsumptionDueDate__c;
    var name = selectv.Product2.Name;
    var Intra_Trade_List_RMB__c = selectv.Product2.Intra_Trade_List_RMB__c;
    var Foreign_Trade_List_US__c = selectv.Product2.Foreign_Trade_List_US__c;
    var NameCode = selectv.Product2.ProductCode;
    var Sales_Possibility = selectv.Product2.Sales_Possibility__c;
    var Intra_Trade_Cost_RMB__c = selectv.Product2.Intra_Trade_Cost_RMB__c;
    var Foreign_Trade_Cost_US__c = selectv.Product2.Foreign_Trade_Cost_US__c;
    var Packing_list_manual__c = selectv.Product2.Packing_list_manual__c;
    var Bsscategory = selectv.Product2.BSSCategory__c;
    var PricebookEntryId = selectv.Id;
    var StorageStatus__c = selectv.Product2.StorageStatus__c;
    var Intra_Trade_Gurantee_USD = selectv.Product2.Intra_Trade_Foreign_RMB__c;
    var Intra_Trade_Service_USD = selectv.Product2.NoDiscount_Foreign__c;
    var Maintenance_Price_Year_USD = selectv.Product2.Repair_Contract_USD__c;
    //fy DB202312538864 2024.02.02 start
    // addobj.PricebookEntry.Product2.StorageStatus__c = StorageStatus__c;
    addobj.pageObject.PricebookEntry.Product2.StorageStatus__c = StorageStatus__c;
    addobj.pageObject.PricebookEntry.Id = PricebookEntryId;
    addobj.pageObject.PricebookEntry.Product2Id = Product2Id;
    addobj.pageObject.Asset_Model_No__c = Asset_Model_No__c;
    addobj.pageObject.PricebookEntry.Product2.LastbuyProductFLG__c = selectv.Product2.LastbuyProductFLG__c;
    addobj.pageObject.PricebookEntry.Product2.whetherOldCode_PrePro__c = selectv.Product2.whetherOldCode_PrePro__c;
    //fy DB202312538864 2024.02.02 end
    // chenijngwu 20240319 start
    addobj.pageObject.PricebookEntry.Product2.ProductCategory__c = selectv.Product2.ProductCategory__c;
    if(addobj.pageObject.PricebookEntry.Product2.ProductCategory__c == 'SP主机'){
        addobj.SPAssistantFlag = true;
    }
    // chenijngwu 20240319 end
    addobj.StorageStatus = StorageStatus__c;
    addobj.lineNo = parseInt(lineno);
    addobj.Asset_Model = Asset_Model_No__c;
    addobj.SFDA_Status__c = SFDA_Status__c;
    addobj.SFDA_Status__c  = SFDAtranslate(addobj.SFDA_Status__c);
    addobj.Estimated_ConsumptionDueDate = Estimated_ConsumptionDueDate__c;
    addobj.Estimated_ConsumptionDueDate1 = Estimated_ConsumptionDueDate__c;
    addobj.pageObject.SFDA_Status__c = SFDA_Status;
    addobj.latestInfo.Specifications = Packing_list_manual__c;
    addobj.Specifications = Packing_list_manual__c;
    addobj.Name = '/'+Product2Id;
    addobj.Name__c = name;
    addobj.pageObject.Name__c = name;
    var ListPrice = 0;
    var Cost_c = 0;
    // var Extend_new_product_gurantee = j$(escapeVfId("Page:mainForm:idSearchSetProduct:idRezultVisitor:"+ i +":Extend_new_product_gurantee__c")).val();
    // var Extend_new_product_gurantee_MD = j$(escapeVfId("Page:mainForm:idSearchSetProduct:idRezultVisitor:"+ i +":Extend_new_product_gurantee_MD__c")).val();
    var GuranteeType = selectv.Product2.GuranteeType__c;
    var Entend_gurantee_period_all = selectv.Product2.Entend_gurantee_period_all__c;
    var Intra_Trade_Gurantee_RMB = selectv.Product2.Intra_Trade_Gurantee_RMB__c;
    var Intra_Trade_Service_RMB = selectv.Product2.Intra_Trade_Service_RMB__c;
    var Maintenance_Price_Year  = selectv.Product2.Maintenance_Price_Year__c;
    if(selectv.Product2.VenderName__c==null||selectv.Product2.VenderName__c==null){
        var VenderName =' 无 ';
    }else{
        var VenderName = selectv.Product2.VenderName__c;
    }
    var CanNotCancelledGurantee = selectv.Product2.CanNotCancelledGurantee__c;
    var Is_DangerousChemicals = selectv.Product2.Is_DangerousChemicals__c;
    //DB202312560765 you 否有EndoRapid资质检查 start
    var IFEndoRapidFlag = selectv.Product2.IFEndoRapidFlag__c;
    //DB202312560765 you 否有EndoRapid资质检查 end
    var ProductGuranteePrice = 0;
    var ProductServicePrice = 0;
    var productMaintenance_Price_Year = 0;
    if(trade == "CNY") {
       ProductGuranteePrice                  = Intra_Trade_Gurantee_RMB;
       ProductServicePrice                   = Intra_Trade_Service_RMB;
       productMaintenance_Price_Year         = Maintenance_Price_Year;
       ListPrice = Intra_Trade_List_RMB__c;
       Cost_c = Intra_Trade_Cost_RMB__c;
    } else if(trade == "USD"){
       ProductGuranteePrice                  = Intra_Trade_Gurantee_USD;
       ProductServicePrice                   = Intra_Trade_Service_USD;
       productMaintenance_Price_Year         = Maintenance_Price_Year_USD;
       ListPrice = Foreign_Trade_List_US__c;
       Cost_c = Foreign_Trade_Cost_US__c;
    }
    Cost_c = toNum(Cost_c);
    // ListPrice = toNum(ListPrice);
    // addobj.ListPrice_Page = toNumComma(ListPrice);
    addobj.ListPrice_Page = ListPrice;
    addobj.pageObject.ListPrice_Page = ListPrice;
    addobj.Quantity__c = 1;
    // addobj.UnitPrice_Page__c = toNumComma(ListPrice);
    addobj.UnitPrice_Page__c = ListPrice;
    // addobj.Subtotal__c = toNumComma(ListPrice);
    addobj.Subtotal__c = ListPrice;
    addobj.pageObject.Subtotal__c = ListPrice;
    addobj.latestInfo.ProductCode = NameCode;
    addobj.latestInfo.ProductName = name;
    addobj = MarkRedFLG(addobj,Estimated_ConsumptionDueDate__c);
    addobj.latestInfo.SFDA_Status = SFDA_Status__c;
    addobj.latestInfo.Sales_Possibility = Sales_Possibility;
    addobj.latestInfo.ListPrice = ListPrice;
    addobj.latestInfo.Cost = Cost_c;
    addobj.Cost_c = Cost_c;
    addobj.Cost_Subtotal_c = Cost_c;
    addobj.pageObject.BSS_Category__c = Bsscategory;
    addobj.pageObject.Id__c = Product2Id;
    addobj.pageObject.PricebookEntryId = PricebookEntryId;
    addobj.pageObject.ProductEntend_gurantee_period_all__c = Entend_gurantee_period_all;
    addobj.Maintenance_Price_Year = productMaintenance_Price_Year;
    addobj.latestInfo.Maintenance_Price_Year = productMaintenance_Price_Year;
    addobj.pageObject.GuranteeType__c = GuranteeType;
    addobj.VenderName = VenderName;
    addobj.CanNotCancelledGurantee = CanNotCancelledGurantee;
    addobj.Is_DangerousChemicals = Is_DangerousChemicals;
    addobj.ProductGuranteePrice = ProductGuranteePrice;
    addobj.pageObject.productServicePrice__c = ProductServicePrice;
    //chenjingwu DB202308355043 2023.8.25 start
    addobj.Category5 =  selectv.Product2.Category5__c;
    //chenjingwu DB202308355043 2023.8.25 end
    //DB202312560765 you 否有EndoRapid资质检查 start
    addobj.IFEndoRapidFlag = IFEndoRapidFlag;
    //DB202312560765 you 否有EndoRapid资质检查 end
    addproductList.push(addobj);
    // if(VenderName != 'OSH'&&VenderName != ''){
    //     window.opener.j$(escapeVfId('Page:mainForm:block:lists:'+lineno+':UnitPrice')).attr('disabled','disabled');
    // }
    IsQuoteTrialExp = false;
}
function MarkRedFLG(addobj,Estimated_ConsumptionDueDate__c){
    var date1 = new Date();
    var seperator = "/";
    var year = date1.getFullYear();
    var month = date1.getMonth() + 1;
    var day = date1.getDate();
    if (month >= 1 && month <= 9) {
        month = "0" + month;
    }
    if (day >= 0 && day <= 9) {
        day = "0" + day;
    }
    var currentdate = year + seperator + month + seperator + day;
    //预计消耗到期日  -  当前日  相差天数(difDate)
    var ndate = new Date(currentdate);
    var nowDate = ndate.getTime();
    var edate = new Date(Estimated_ConsumptionDueDate__c);
    var endDate = edate.getTime();
    var difDate = (endDate - nowDate)/((1000 * 60 * 60 * 24));
    //判断
    if(difDate < 90){
        addobj.EstimatedConsumptionDueDateclass = 'slds-text-color_error slds-text-title_caps';
    }
    return addobj;
}
export function MarkRed(quoitemList) {
    quoitemList.forEach(item=>{
        var a = item.Asset_Model;
        var b = item.Estimated_ConsumptionDueDate;
        if (a != '') {
            var date1 = new Date();
            var seperator = "/";
            var year = date1.getFullYear();
            var month = date1.getMonth() + 1;
            var day = date1.getDate();
            if (month >= 1 && month <= 9) {
                month = "0" + month;
            }
            if (day >= 0 && day <= 9) {
                day = "0" + day;
            }
            var currentdate = year + seperator + month + seperator + day;
            //预计消耗到期日  -  当前日  相差天数(difDate)
            var ndate = new Date(currentdate);
            var nowDate = ndate.getTime();
            var edate = new Date(b);
            var endDate = edate.getTime();
            var difDate = (endDate - nowDate) / ((1000 * 60 * 60 * 24));
            //判断
            if (difDate < 90) {
                item.EstimatedConsumptionDueDateclass = 'slds-text-color_error slds-text-title_caps';
            }else{
                item.EstimatedConsumptionDueDateclass = '';
            }
        }
    });
    return quoitemList;
}
export function filterNameoptionList(){
    var optionList = [{label:'--无--',value: ''},
    {label:'消化科',value: '消化科'},
    {label:'呼吸科',value: '呼吸科'},
    {label:'普外科',value: '普外科'},
    {label:'泌尿科',value: '泌尿科'},
    {label:'妇科',value: '妇科'},
    {label:'耳鼻喉科',value: '耳鼻喉科'},
    {label:'能量',value: '能量'},
    {label:'SI',value: 'SI'},
    {label:'外科通用',value: '外科通用'}];
    return optionList;
}
export function SelectDone(activities){
    debugger
    var setPFString = '';
    activities.forEach(arc=>{
        if(!setPFString){
            setPFString = arc.Id;
        }else{
            setPFString = setPFString+','+arc.Id;
        }
    });
    DataStatus = 'Fin';
    return setPFString;
}
//chenjingwu start
//行上移
function upGo(fieldData,index){
    if(index!=0){
        fieldData[index] = fieldData.splice(index-1, 1, fieldData[index])[0];
    }else{
        fieldData.push(fieldData.shift());
    }
}
//行下移
function downGo(fieldData,index) {
    if(index!=fieldData.length-1){
        fieldData[index] = fieldData.splice(index+1, 1, fieldData[index])[0];
    }else{
        fieldData.unshift( fieldData.splice(index,1)[0]);
    }
}
// 行up
export function lineUp(jzDataToBeproduct1,selectjzDataTableToBeproduct1){
    // 用于存储原位置索引
    var numList = [];
    //循环原产品行列表,根据已选择产品列表的lineNo匹配,取出位置索引
    jzDataToBeproduct1.forEach((item,index1)=>{
        selectjzDataTableToBeproduct1.forEach((selectItem,index2)=>{
            if(item.lineNo == selectItem.lineNo){
                numList.push(index1);
            }
        });
    });
    //选中行不包含第一行则进行上移
    if(numList.length > 0 && numList[0] > 0){
        numList.forEach(n=>{
            upGo(jzDataToBeproduct1,n);
        });
    }
    return jzDataToBeproduct1;
}
export function lineDown(jzDataToBeproduct1,selectjzDataTableToBeproduct1){
    // 用于存储原位置索引
    var numList = [];
    //循环原产品行列表,根据已选择产品列表的lineNo匹配,取出位置索引
    jzDataToBeproduct1.forEach((item,index1)=>{
        selectjzDataTableToBeproduct1.forEach((selectItem,index2)=>{
            if(item.lineNo == selectItem.lineNo){
                numList.push(index1);
            }
        });
    });
    //选中行不包含最后一行则进行下移
    if(numList.length > 0 && numList[numList.length - 1] < jzDataToBeproduct1.length - 1){
        var numListDesc = [];
        //数组反转,确保最下面的先下移
        for(var i = numList.length-1;0 <= i;i--){
            numListDesc.push(numList[i]);
        }
        numListDesc.forEach(n=>{
            downGo(jzDataToBeproduct1,n);
        });
    }
    return jzDataToBeproduct1;
}
//主js方法拆分(主js字节超限)
export function qwe(OnLoadProduct,result){
    var newList = [];
    OnLoadProduct.forEach(items => {
        var DataTemp = {};
        result.forEach(reItgem => {
            if (reItgem.Id == items.Id) {
                DataTemp = reItgem;
                return;
            }
            reItgem.ListPrice = reItgem.ListPrice__c;
        })
        if (DataTemp != undefined && DataTemp != {}) {
            DataTemp = {
                ...DataTemp,
                ...items
            };
        }
        newList.push(DataTemp);
    })
    return newList;
}
export function yingYanCheck(jzDataToBeproduct,yingYanAssetModel){
    var yingYanFlag = false;
    jzDataToBeproduct.forEach(pro=>{
        if(yingYanAssetModel.includes(pro.Asset_Model)){
            yingYanFlag = true;
        }
    });
    return yingYanFlag;
}
//chenjingwu end
//初始化产品赋值
export function InitializeProductAssignment(quoteLineItem){
    debugger
    console.warn(JSON.stringify(quoteLineItem));
    quoteLineItem.forEach(quotltiem=>{
        // chenjingwu 3+2 start
        // quotltiem.Learning_CommunityOptions =  [
        //     { label: '--无--', value: '' },
        //     { label: '主机', value: '主机' },
        //     { label: '镜子', value: '镜子' },
        //     { label: '洗消机', value: '洗消机' },
        //     { label: '小镜种', value: '小镜种' },
        //     { label: '能量', value: '能量' },
        //     { label: '光源', value: '光源' },
        //     { label: '其他', value: '其他' }
        // ];
        // chenjingwu 3+2 end
        //fy DB202312538864 2024.02.02 start
        if(quotltiem.PricebookEntry === undefined){
          quotltiem.PricebookEntry = {Product2:{}};
        }else{
            if(quotltiem.PricebookEntry.Product2 === undefined){
                quotltiem.PricebookEntry.Product2 = {};
            }
        }
        if(quotltiem.lastbuyProductFLGc !== undefined && quotltiem.lastbuyProductFLGc !== null){
            quotltiem.PricebookEntry.Product2.LastbuyProductFLG__c = quotltiem.lastbuyProductFLGc;
        }
        // chenjingwu 20240411 start
        if(quotltiem.ProductCategory !== undefined && quotltiem.ProductCategory !== null){
            quotltiem.PricebookEntry.Product2.ProductCategory__c = quotltiem.ProductCategory;
        }
         // chenjingwu 20240411 end
        if(quotltiem.whetherOldCode_PreProc !== undefined && quotltiem.whetherOldCode_PreProc !== null){
            quotltiem.PricebookEntry.Product2.whetherOldCode_PrePro__c = quotltiem.whetherOldCode_PreProc;
        }
        //fy DB202312538864 2024.02.02 end
        quotltiem.Quantity__c = quotltiem.pageObject.Quantity__c;
        quotltiem.UnitPrice_Page__c = quotltiem.pageObject.UnitPrice_Page__c;
        // quotltiem.UnitPrice_Page__c = toNumComma(quotltiem.UnitPrice_Page__c);
        quotltiem.AgencySubtotal__c = quotltiem.pageObject.AgencySubtotal__c;
        quotltiem.AgencyUnitPrice__c = quotltiem.pageObject.AgencyUnitPrice__c;
        // quotltiem.ListPrice_Page = toNumComma(quotltiem.ListPrice_Page);
        quotltiem.multiYearWarranty__c = quotltiem.pageObject.multiYearWarranty__c;
        quotltiem.GuaranteePeriod__c = quotltiem.pageObject.GuaranteePeriod__c;
        quotltiem.warrantyType__c = quotltiem.pageObject.warrantyType__c;
        quotltiem.NoDiscountTotal__c = quotltiem.pageObject.NoDiscountTotal__c;
        quotltiem.SFDA_Status__c = quotltiem.pageObject.SFDA_Status__c;
        quotltiem.SFDA_Status__c = SFDAtranslate(quotltiem.SFDA_Status__c);
        quotltiem.Name__c = quotltiem.pageObject.Name__c;
        quotltiem.Subtotal__c = quotltiem.pageObject.Subtotal__c;
        // quotltiem.Subtotal__c = toNumComma(quotltiem.Subtotal__c);
        quotltiem.Name = '/'+quotltiem.pageObject.Id__c;
        if((!(!quotltiem.pageObject.Product_Sales_Possibility__c || quotltiem.pageObject.Product_Sales_Possibility__c == '○') && !quotltiem.changed_sfda)){
            quotltiem.SFDAStatuclass = 'slds-text-color_error slds-text-title_caps';
        }
        if(quotltiem.haveno_Register){
            quotltiem.SFDAStatuclass = 'slds-text-color_error slds-text-title_caps';
        }
        if(quotltiem.changed_list){
            quotltiem.ListPricePageclass = 'slds-text-color_error slds-text-title_caps';
        }
        if(quotltiem.changed_name == true || quotltiem.wrong_Register == true){
            quotltiem.Nameclass = 'slds-text-color_red';
        }
        //产品Id
    });
    const inputAlignright = document.createElement('style');
    inputAlignright .innerText = `.slds-text-color_red a{ color:#ba0517;!important; }`;
    document.body.appendChild(inputAlignright);
    quoteLineItem = MarkRed(quoteLineItem);
    return quoteLineItem;
}
export function actState(reslut,list){
    var reslutList = JSON.parse(reslut);
    var reMap = new Map();
    reslutList.forEach(itm=>{
        var val = {
            haveno_Register:itm.haveno_Register,
            wrong_Register:itm.wrong_Register
        };
        reMap.set(itm.pageObject.Id__c,val);
    });
    list.forEach(ac=>{
        if(reMap.has(ac.pageObject.Id__c)){
            var vlu = reMap.get(ac.pageObject.Id__c);
            ac.haveno_Register = vlu.haveno_Register;
            ac.wrong_Register = vlu.wrong_Register;
        }
        if((!(!ac.pageObject.Product_Sales_Possibility__c || ac.pageObject.Product_Sales_Possibility__c == '○') && !ac.changed_sfda)){
            ac.SFDAStatuclass = 'slds-text-color_error slds-text-title_caps';
        }
        if(ac.haveno_Register){
            ac.SFDAStatuclass = 'slds-text-color_error slds-text-title_caps';
        }
        if(ac.changed_list){
            ac.ListPricePageclass = 'slds-text-color_error slds-text-title_caps';
        }
        if(ac.changed_name == true || ac.wrong_Register == true){
            ac.Nameclass = 'slds-text-color_red';
        }
    });
    const inputAlignright = document.createElement('style');
    inputAlignright .innerText = `.slds-text-color_red a{ color:#ba0517;!important; }`;
    document.body.appendChild(inputAlignright);
    return list;
}
export function PriceStatusUpdateLogic(jzDataToBeproduct,newQuoteFlag){
    newQuoteFlagex = newQuoteFlag;
    jzDataToBeproduct.forEach(jzdtbt=>{
        debugger
        if ((jzdtbt.Asset_Model != null) && (jzdtbt.Asset_Model != '')&& (jzdtbt.Asset_Model.length>0)) {
            // 只要更新,就生成新报价编码
            jzdtbt.ListPrice_Page = localParseFloat(jzdtbt.ListPrice_Page);
            if (jzdtbt.pageObject.SFDA_Status__c != jzdtbt.latestInfo.SFDA_Status ||
                jzdtbt.pageObject.Name__c != jzdtbt.latestInfo.ProductName ||
                jzdtbt.ListPrice_Page != jzdtbt.latestInfo.ListPrice ||
                jzdtbt.pageObject.Cost__c != jzdtbt.latestInfo.Cost ||
                jzdtbt.Cost_c != jzdtbt.latestInfo.Cost
                //计提金额
                || jzdtbt.ProductGuranteePrice != jzdtbt.latestInfo.Intra_Trade_Gurantee
                || jzdtbt.pageObject.productServicePrice__c  != jzdtbt.latestInfo.Intra_Trade_Service
                // 维修合同报价
                || jzdtbt.Maintenance_Price_Year != jzdtbt.latestInfo.Maintenance_Price_Year
               ) {
                newQuoteFlagex = true;
            }
            if (jzdtbt.pageObject.Name__c != jzdtbt.latestInfo.ProductName) {
                jzdtbt.changed_name = true;
            }
            if (jzdtbt.pageObject.SFDA_Status__c != jzdtbt.latestInfo.SFDA_Status) {
                jzdtbt.changed_sfda = true;
            }
            if (jzdtbt.ListPrice_Page != jzdtbt.latestInfo.ListPrice) {
                jzdtbt.changed_list = true;
            }
            if (jzdtbt.pageObject.Cost__c != jzdtbt.latestInfo.Cost) {
                jzdtbt.changed_cost = true;
            }
            // TODO katsu SFDAステータスの確認などいらないですか(最新商品XXXの項目も)
            jzdtbt.pageObject.SFDA_Status__c = jzdtbt.latestInfo.SFDA_Status;
            jzdtbt.SFDA_Status__c = jzdtbt.pageObject.SFDA_Status__c;
            jzdtbt.pageObject.Name__c = jzdtbt.latestInfo.ProductName;
            jzdtbt.Name__c = jzdtbt.pageObject.Name__c;
            jzdtbt.ListPrice_Page = jzdtbt.latestInfo.ListPrice;
            jzdtbt.pageObject.Cost__c = jzdtbt.latestInfo.Cost;
            jzdtbt.Cost_c = jzdtbt.latestInfo.Cost;
            jzdtbt.pageObject.ProductGuranteePrice__c =  jzdtbt.latestInfo.Intra_Trade_Gurantee;
            jzdtbt.pageObject.GuranteeType__c = jzdtbt.latestInfo.GuranteeType;
            // 计提金额
            jzdtbt.pageObject.productServicePrice__c = jzdtbt.latestInfo.Intra_Trade_Service;
            // 多年保修年限
            jzdtbt.pageObject.ProductEntend_gurantee_period_all__c
              = jzdtbt.latestInfo.ProductEntend_gurantee_period_all;
            // 维修合同报价
            jzdtbt.Maintenance_Price_Year = jzdtbt.latestInfo.Maintenance_Price_Year;
            // jzdtbt.ListPrice_Page = toNumComma(jzdtbt.ListPrice_Page);
            jzdtbt.ListPrice_Page = jzdtbt.ListPrice_Page;
          }
    });
    return jzDataToBeproduct;
}
export function calGuranteeAllFieldsLogic(jzDataToBeproduct,quo){
    debugger
    var AllGurantee_Period = quo.Gurantee_Period__c;
    var contractmultiYearWarranty = true;
    if (quo.multiYearWarranty__c != null) {
        contractmultiYearWarranty = quo.multiYearWarranty__c;
    }
    var MultiYearWarrantyTotalPrice__c = 0.00;
    jzDataToBeproduct.forEach(jzdtbt=>{
        var GuranteeType =jzdtbt.pageObject.GuranteeType__c;
        // 保修类型
        var warrantyType = '';
        // 产品保修期
        var ProductEntend_gurantee_period = jzdtbt.pageObject.ProductEntend_gurantee_period_all__c;
        // 产品计提金额
        var ProductGuranteePrice__c = jzdtbt.ProductGuranteePrice;
        // 产品 service Price
        var ServicePrice = jzdtbt.pageObject.productServicePrice__c;
        // 保修
        var multiYearWarranty = false;
        // 是否取消保修
        var If_Cancel_Guarantee = false;
        //产品主数据增加“不可取消多年保” 2020/08/28 精琢技术 wql start
        var CanNotCancelledGurantee = jzdtbt.CanNotCancelledGurantee;
        //产品主数据增加“不可取消多年保” 2020/08/28 精琢技术 wql end
        // 老 no discount price
        var oldServicePrice =jzdtbt.pageObject.ServicePrice__c;
        jzdtbt.pageObject.ServicePrice__c = 0;
        jzdtbt.warrantyType__c = '';
        var NoDiscountTotal = 0;
        if (GuranteeType == '服务') {
            multiYearWarranty = true;
            jzdtbt.warrantyType__c = '服务多年保修';
            warrantyType = '服务多年保修';
        } else if (GuranteeType == '市场' && contractmultiYearWarranty == false) {
            multiYearWarranty = true;
            jzdtbt.pageObject.ServicePrice__c = ServicePrice;
            jzdtbt.warrantyType__c = '市场多年保修';
            warrantyType = '市场多年保修';
            var Quantity =jzdtbt.Quantity__c;
            MultiYearWarrantyTotalPrice__c = MultiYearWarrantyTotalPrice__c + localParseFloat(ServicePrice) * localParseFloat(Quantity);
            NoDiscountTotal = localParseFloat(ServicePrice) * localParseFloat(Quantity);
        }
        else if (GuranteeType == '市场' && contractmultiYearWarranty && CanNotCancelledGurantee) {
            multiYearWarranty = true;
            jzdtbt.pageObject.ServicePrice__c = ServicePrice;
            jzdtbt.warrantyType__c = '市场多年保修';
            warrantyType = '市场多年保修';
            // 数量
            var Quantity = jzdtbt.Quantity__c;
            MultiYearWarrantyTotalPrice__c = MultiYearWarrantyTotalPrice__c + localParseFloat(ServicePrice) * localParseFloat(Quantity);
            NoDiscountTotal = localParseFloat(ServicePrice) * localParseFloat(Quantity);
        }
        else if (GuranteeType == '市场') {
            If_Cancel_Guarantee = true;
        }
        // if (jzdtbt.NoDiscountTotal__c != null) {
            jzdtbt.NoDiscountTotal__c = toNumComma(NoDiscountTotal);
        // }
        // 更新后的 no discount price
        var newServicePrice = jzdtbt.pageObject.ServicePrice__c;
        newServicePrice = localParseFloat(newServicePrice);
        oldServicePrice = localParseFloat(oldServicePrice);
        if (newServicePrice != oldServicePrice) {
            var unitPrice = jzdtbt.UnitPrice_Page__c;
            unitPrice = localParseFloat(unitPrice);
            // jzdtbt.UnitPrice_Page__c = toNum(unitPrice + newServicePrice - oldServicePrice);
            jzdtbt.UnitPrice_Page__c = unitPrice + newServicePrice - oldServicePrice;
        }
        jzdtbt.pageObject.If_Cancel_Guarantee__c = If_Cancel_Guarantee;
        // 设置保修
        // if (jzdtbt.multiYearWarranty__c != null) {
            jzdtbt.multiYearWarranty__c = multiYearWarranty;
        // }
        var GuranteePrice = 0;
        // 计提年限
        var provistonPeriod = 0;
        // 根据产品信息设置保修年限 和计提金额
        if (GuranteeType == '服务') {
            jzdtbt.pageObject.GuaranteePeriod__c = ProductEntend_gurantee_period | 0;
            jzdtbt.GuaranteePeriod__c = ProductEntend_gurantee_period | 0;
            GuranteePrice = ProductGuranteePrice__c;
            jzdtbt.GuranteePrice = GuranteePrice;
            provistonPeriod = ProductEntend_gurantee_period;
        } else if (GuranteeType == '市场') {
            if (contractmultiYearWarranty == false) {
                if (localParseFloat(ProductEntend_gurantee_period) >= localParseFloat(AllGurantee_Period)) {
                    jzdtbt.pageObject.GuaranteePeriod__c = ProductEntend_gurantee_period | 0;
                    jzdtbt.GuaranteePeriod__c = ProductEntend_gurantee_period | 0;
                } else {
                    jzdtbt.pageObject.GuaranteePeriod__c =  AllGurantee_Period;
                    jzdtbt.GuaranteePeriod__c = AllGurantee_Period;
                }
                provistonPeriod = ProductEntend_gurantee_period;
                GuranteePrice = ProductGuranteePrice__c;
                jzdtbt.GuranteePrice = GuranteePrice;
            }else if (contractmultiYearWarranty && CanNotCancelledGurantee) {
                if (localParseFloat(ProductEntend_gurantee_period) >= localParseFloat(AllGurantee_Period)) {
                    jzdtbt.pageObject.GuaranteePeriod__c = ProductEntend_gurantee_period | 0;
                    jzdtbt.GuaranteePeriod__c = ProductEntend_gurantee_period | 0;
                } else {
                    jzdtbt.pageObject.GuaranteePeriod__c = AllGurantee_Period;
                    jzdtbt.GuaranteePeriod__c = AllGurantee_Period;
                }
                provistonPeriod = ProductEntend_gurantee_period;
                GuranteePrice = ProductGuranteePrice__c;
                jzdtbt.GuranteePrice = GuranteePrice;
            }
            else {
                jzdtbt.pageObject.GuaranteePeriod__c =  1;
                jzdtbt.GuaranteePeriod__c = 1;
                jzdtbt.GuranteePrice = GuranteePrice;
            }
        } else {
            jzdtbt.pageObject.GuaranteePeriod__c = AllGurantee_Period;
            jzdtbt.GuaranteePeriod__c = AllGurantee_Period;
            jzdtbt.GuranteePrice = GuranteePrice;
        }
        jzdtbt.pageObject.provistonPeriod__c = provistonPeriod | 0;
    });
    MultiYearWarrantyTotalPriceExport = MultiYearWarrantyTotalPrice__c;
    return jzDataToBeproduct;
}
export function initQuoteLineItemcheck(quoteLineItem,productStatusUpdated){
    debugger
    newQuoteFlagExp = false;
    productStatusUpdatedExp = productStatusUpdated;
    quoteLineItem.forEach(a=>{
        if(!a.Maintenance_Price_Year){
            a.Maintenance_Price_Year = 0;
        }
        if(!a.latestInfo.Maintenance_Price_Year){
            a.latestInfo.Maintenance_Price_Year = 0;
        }
        if(!a.pageObject.GuranteeType__c){
            a.pageObject.GuranteeType__c = '';
        }
        if(!a.latestInfo.GuranteeType){
            a.latestInfo.GuranteeType = '';
        }
        if (a.Asset_Model) {
            if(a.pageObject.SFDA_Status__c != a.latestInfo.SFDA_Status
            ||a.pageObject.Name__c != a.latestInfo.ProductName
            ||a.ListPrice_Page != a.latestInfo.ListPrice
            ||a.pageObject.Cost__c != a.latestInfo.Cost
            ||a.Cost_c != a.latestInfo.Cost
            ||a.ProductGuranteePrice != a.latestInfo.Intra_Trade_Gurantee
            ||a.pageObject.productServicePrice__c  != a.latestInfo.Intra_Trade_Service
            ||a.Maintenance_Price_Year != a.latestInfo.Maintenance_Price_Year
            ||a.pageObject.GuranteeType__c != a.latestInfo.GuranteeType
            ||a.pageObject.ProductEntend_gurantee_period_all__c != a.latestInfo.ProductEntend_gurantee_period_all
            ||a.pageObject.PricebookEntry.Product2.CanNotCancelledGurantee__c != a.latestInfo.CanNotCancelledGurantee
            ) {
                newQuoteFlagExp = true;
                productStatusUpdatedExp = true;
            }
            if (a.pageObject.Name__c != a.latestInfo.ProductName) {
              a.changed_name = true;
              productStatusUpdatedExp = true;
            }
            if (a.pageObject.SFDA_Status__c != a.latestInfo.SFDA_Status) {
              a.changed_sfda = true;
              productStatusUpdatedExp = true;
            }
            if (a.ListPrice_Page != a.latestInfo.ListPrice) {
              a.changed_list = true;
              productStatusUpdatedExp = true;
            }
            if (a.pageObject.Cost__c != a.latestInfo.Cost) {
              a.changed_cost = true;
              productStatusUpdatedExp = true;
            }
            a.pageObject.SFDA_Status__c = a.latestInfo.SFDA_Status;
            a.pageObject.Name__c = a.latestInfo.ProductName;
            a.ListPrice_Page = a.latestInfo.ListPrice;
            a.pageObject.Cost__c = a.latestInfo.Cost;
            a.Cost_c = a.latestInfo.Cost;
            a.ProductGuranteePrice =  a.latestInfo.Intra_Trade_Gurantee;
            a.pageObject.productServicePrice__c = a.latestInfo.Intra_Trade_Service;
            a.Maintenance_Price_Year = a.latestInfo.Maintenance_Price_Year;
            a.pageObject.ProductEntend_gurantee_period_all__c= a.latestInfo.ProductEntend_gurantee_period_all;
            a.pageObject.GuranteeType__c = a.latestInfo.GuranteeType;
        }
    });
    return quoteLineItem;
}
//加天数
export function addDay(dayNumber, date) {
    var ms = dayNumber * (1000 * 60 * 60 * 24)
    var newDate = new Date(date.getTime() + ms);
    return newDate;
}
//计算两个日期之间的天数
export function dateDaysBetween(dateStrBegin, dateStrEnd) {
    if (!dateStrBegin || !dateStrEnd) return 0;
    var s1 = dateStrBegin.getTime(),
        s2 = dateStrEnd.getTime();
    var total = (s2 - s1) / 1000;
    var day = parseInt(total / (24 * 60 * 60));
    return day;
}
 /*
        计算经销商单价和经销商小计
    */
   // quoteAgencyTotalPriceAction1
//    CHAN-B4YAB8 2018/9/28 计算经销商单价和小计 start
    //  如果是OCSM直销,则更改医院合同价格时会计算经销商单价和小计
    //  如果是 经销商销售,则更改 第一经销商总价是会计算经销商单价和小计
export function quoteAgencyTotalPriceActionLogic(jzDataToBeproduct,quo,oppInfo,QuoteDecision_Button,hidden_MultiYearWarrantyTotalPrice){
    debugger
    var s,l;
    var SalesAmount1 = quo.OCM_Agent1_Price_Page__c;
    var Estimation_List_Price = 0;
    var thirdPartyEstimation_List_Price = 0;
    jzDataToBeproduct.forEach(jzdtbt=>{
        // 供应商名称
        var VenderName = jzdtbt.VenderName;
        s = jzdtbt.Quantity__c;
        s = localParseInt(s);
        l = jzdtbt.ListPrice_Page;
        l = localParseInt(l);
        var backbutton = QuoteDecision_Button;
        if (backbutton == '') {
            VenderName = '';
        }
        if (VenderName == '' || VenderName == 'OSH') {
            Estimation_List_Price = Estimation_List_Price + s * l;
        } else {
            thirdPartyEstimation_List_Price = thirdPartyEstimation_List_Price + s * l;
        }
    });
    // 医院的合同金额
    var Dealer_Final_Price = quo.Dealer_Final_Price_Page__c;
    // 销售渠道
    var Sales_Root = oppInfo.Sales_Root__c;
    var TotalPrice = 0;
    var StardardPrice = 0;
    var totalAgencyPrice = 0;
    var AgencySubtotal = 0;
    var LastAgencySubtotal = 0;
    var j = 0;
    var i = -1;
    var lastQuantity = 0;
    Sales_Root = Sales_Root + '';
    Sales_Root = Sales_Root.replace(/\s+/g, "");
    if (Sales_Root == '经销商') {
        TotalPrice = SalesAmount1;
    } else {
        TotalPrice = Dealer_Final_Price;
    }
    TotalPrice = localParseFloat(TotalPrice);
    var oldTotalPrice = TotalPrice;
    totalAgencyPrice = TotalPrice;
    //no discount price 合计
    var noDiscountPriceTotal = hidden_MultiYearWarrantyTotalPrice;
    noDiscountPriceTotal = localParseFloat(noDiscountPriceTotal);
    TotalPrice = TotalPrice - noDiscountPriceTotal;
    jzDataToBeproduct.forEach(jzdtbt=>{
        s = jzdtbt.Quantity__c;
        s = localParseInt(s);
        l = jzdtbt.ListPrice_Page;
        l = localParseInt(l);
        if ((s == 0) || (l == 0)) {
            //処理なし
        } else if (oldTotalPrice == 0) {
            jzdtbt.pageObject.AgencySubtotal__c = 0;
            jzdtbt.AgencySubtotal__c = toNumComma_One_digit(0);
            jzdtbt.AgencyUnitPrice__c = toNumComma_One_digit(0);
        } else {
            StardardPrice = s * l;
            StardardPrice = localParseFloat(StardardPrice);
            // 供应商名称
            var VenderName = jzdtbt.VenderName;
            //行项目 no discount price:
            var noDiscountPrice = jzdtbt.pageObject.ServicePrice__c;
            noDiscountPrice = localParseFloat(noDiscountPrice);
            var Agency_UnitPrice = (l).toFixed(1);
            var backbutton = QuoteDecision_Button;
            if (backbutton == '') {
                VenderName = '';
            }
            if (VenderName == '' || VenderName == 'OSH') {
                var Agency_UnitPrice = (StardardPrice * (TotalPrice - thirdPartyEstimation_List_Price) / (Estimation_List_Price * s) + noDiscountPrice ).toFixed(1);
            }
            AgencySubtotal = Agency_UnitPrice * s;
            jzdtbt.pageObject.AgencySubtotal__c = AgencySubtotal;
            jzdtbt.AgencySubtotal__c = toNumComma_One_digit(AgencySubtotal);
            jzdtbt.AgencyUnitPrice__c = toNumComma_One_digit(Agency_UnitPrice);
            totalAgencyPrice = totalAgencyPrice - toNum(AgencySubtotal);
            i++;
            j=i;
            lastQuantity = s;
            LastAgencySubtotal = AgencySubtotal;
        }
    });
    if (oldTotalPrice != 0){
        LastAgencySubtotal = LastAgencySubtotal + totalAgencyPrice;
        if(jzDataToBeproduct.length>0){
            jzDataToBeproduct[j].pageObject.AgencySubtotal__c = toNum(LastAgencySubtotal);
            jzDataToBeproduct[j].AgencySubtotal__c = toNumComma_One_digit(LastAgencySubtotal);
            jzDataToBeproduct[j].AgencyUnitPrice__c = toNumComma_One_digit(LastAgencySubtotal / lastQuantity);
        }
    }
    return jzDataToBeproduct;
}
//根据行项目上产品的信息 更新多年保修行项目所有字段, 并且更新No Discount Price合计
export function calPriceAllLogic(jzDataToBeproduct){
    var x, y, z, c;
    jzDataToBeproduct.forEach(jzdtbt=>{
        x = jzdtbt.Quantity__c;
        x = localParseInt(x);
        if (x > 0) {
            y = jzdtbt.UnitPrice_Page__c;
            c = jzdtbt.Cost_c;
            y = localParseFloat(y);
            c = localParseFloat(c);
            z = x * y;
            // jzdtbt.Subtotal__c = toNumComma(z);
            jzdtbt.Subtotal__c = z;
            jzdtbt.pageObject.Subtotal__c = toNum(z);
            z = x * c;
            jzdtbt.Cost_Subtotal_c = toNum(z);
        }
    });
    return jzDataToBeproduct;
}
export function QuoteAdjustLogic(jzDataToBeproduct,quo,hidden_MultiYearWarrantyTotalPrice,QuoteDecision_Button){
    debugger
    var x = quo.QuoteTotal_Page__c;
    x = localParseFloat(x);
    var y = quo.hidden_Estimation_List;
    y = localParseFloat(y);
    var noDiscountPriceTotal = hidden_MultiYearWarrantyTotalPrice;
    noDiscountPriceTotal = localParseFloat(noDiscountPriceTotal);
    var thirdPartyEstimation_List_Price = 0;
    var price = 0;
    var Quantity = 0;
    jzDataToBeproduct.forEach(jzdtbt=>{
        var VenderName = jzdtbt.VenderName;
        var backbutton = QuoteDecision_Button;
        if (backbutton == '') {
            VenderName = '';
        }
        if (VenderName != '' && VenderName != 'OSH') {
            price = jzdtbt.ListPrice_Page;
            price = localParseFloat(price);
            Quantity = jzdtbt.Quantity__c;
            Quantity = localParseInt(Quantity);
            thirdPartyEstimation_List_Price = thirdPartyEstimation_List_Price + price * Quantity;
        }
    });
    thirdPartyEstimation_List_Price = localParseFloat(thirdPartyEstimation_List_Price);
    quo.Quote_Adjust_Amount_Page__c = toNumComma(x - noDiscountPriceTotal - y);
    if (y - thirdPartyEstimation_List_Price == 0) {
        quo.Quote_Adjust_Calculate__c = toNumComma(0);
    } else {
        quo.Quote_Adjust_Calculate__c = toNumComma((x - noDiscountPriceTotal - y) / (y - thirdPartyEstimation_List_Price) * 100);
    }
    quoExp = quo;
    return jzDataToBeproduct;
}
export function AgencyDiscountCalculation1Logic(quo,jzDataToBeproduct,QuoteDecision_Button,hidden_MultiYearWarrantyTotalPrice){
    var y = quo.OCM_Agent1_Price_Page__c;
    if (y != '' && y.length != 0) {
        var Estimation_List_Price = quo.Estimation_List_Price__c;
        y = y + '';
        y = y.replace(/ /g, "");
        if (Estimation_List_Price.length != 0) {
            y = localParseFloat(y);
            Estimation_List_Price = localParseFloat(Estimation_List_Price);
            // 第三方产品标准定价总额
            var thirdPartyEstimation_List_Price = 0;
            var price = 0;
            var Quantity = 0;
            jzDataToBeproduct.forEach(jzdtbt=>{
                var VenderName = jzdtbt.VenderName;
                var backbutton = QuoteDecision_Button;
                if (backbutton == '') {
                    VenderName = '';
                }
                if (VenderName != '' && VenderName != 'OSH') {
                    price = jzdtbt.ListPrice_Page;
                    price = localParseFloat(price);
                    Quantity = jzdtbt.Quantity__c;
                    Quantity = localParseInt(Quantity);
                    thirdPartyEstimation_List_Price = thirdPartyEstimation_List_Price + price * Quantity;
                }
            });
            thirdPartyEstimation_List_Price = localParseFloat(thirdPartyEstimation_List_Price);
            if (Estimation_List_Price - thirdPartyEstimation_List_Price == 0) {
                quo.AgencyDiscount__c = toNumComma(0);
                // j$(escapeVfId('Page:mainForm:block:AgencyDiscount')).val(toNumComma(0));
            } else {
                //no discount price 合计
                var noDiscountPriceTotal = hidden_MultiYearWarrantyTotalPrice;
                noDiscountPriceTotal = localParseFloat(noDiscountPriceTotal);
                var t = (y - noDiscountPriceTotal - thirdPartyEstimation_List_Price) / (Estimation_List_Price - thirdPartyEstimation_List_Price) * 100;
                quo.AgencyDiscount__c = toNumComma(t);
                // j$(escapeVfId('Page:mainForm:block:AgencyDiscount')).val(toNumComma(t));
            }
        } else {
            quo.AgencyDiscount__c = toNumComma(0);
            // j$(escapeVfId('Page:mainForm:block:AgencyDiscount')).val(toNumComma(0));
        }
    } else {
        quo.AgencyDiscount__c = toNumComma(0);
        // j$(escapeVfId('Page:mainForm:block:AgencyDiscount')).val(toNumComma(0));
    }
    quoExp = quo;
    return jzDataToBeproduct;
}
//检查报价行的NMPA状态
export function checkNMPA(jzDataToBeproduct) {
    var cnt = 0;
    var nmpa;
    jzDataToBeproduct.forEach(jzdtbt=>{
        nmpa = jzdtbt.SFDA_Status__c;
        if (nmpa == '停止') {
            cnt = cnt + 1;
            return;
        }
    });
    if (cnt > 0) {
        return true;
    } else {
        return false;
    }
}
export function AlertAuthorize(oppInfo) {
    var Authorized_DB_No = oppInfo.Authorized_DB_No__c;
    var If_Need_Authorize = oppInfo.If_Need_Authorize__c;
    if (If_Need_Authorize) {
        if (Authorized_DB_No == null || Authorized_DB_No == '') {
            return false;
        } else {
            return true;
        }
    } else {
        return true;
    }
}
export function AlertForCFDA(jzDataToBeproduct) {
    var SFDA_Status__c, cnt;
    cnt = 0;
    jzDataToBeproduct.forEach(jzdtbt=>{
        SFDA_Status__c = jzdtbt.SFDA_Status__c;
        if (SFDA_Status__c == '失效-重新申请中' || SFDA_Status__c == '失効(再申請中)') {
            cnt = cnt + 1;
        }
    });
    if (cnt > 0) {
        return true;
    } else {
        return false;
    }
}
export function CheckForCost(jzDataToBeproduct) {
    var Cost, cnt, name;
    cnt = 0;
    jzDataToBeproduct.forEach(jzdtbt=>{
        Cost = jzdtbt.Cost_c;
        name = jzdtbt.pageObject.Name__c;
        if (name && Cost <= 0) {
            cnt = cnt + 1;
        }
    });
    if (cnt > 0) {
        return true;
    } else {
        return false;
    }
}
//检查是否有标准定价为0的情况
export function CheckForListPrice(jzDataToBeproduct) {
    var ListPrice, name;
    var cnt = 0;
    jzDataToBeproduct.forEach(jzdtbt=>{
        ListPrice = jzdtbt.ListPrice_Page;
        ListPrice = localParseFloat(ListPrice);
        name = jzdtbt.pageObject.Name__c;
        if (name && ListPrice <= 0) {
            cnt = cnt + 1;
        }
    });
    if (cnt > 0) {
        return true;
    } else {
        return false;
    }
}
export function SubtotalupdateLogic(jzDataToBeproduct){
    debugger
    console.warn('Unit6');
    var x, y, z;
    z = 0;
    jzDataToBeproduct.forEach(jzdtbt=>{
        x = jzdtbt.Quantity__c;
        x = localParseInt(x);
        y = jzdtbt.UnitPrice_Page__c;
        y = localParseFloat(y);
        z = x * y;
        if (jzdtbt.UnitPrice_Page__c != "") {
            // jzdtbt.Subtotal__c = toNumComma(z);
            jzdtbt.Subtotal__c = z;
            jzdtbt.pageObject.Subtotal__c = toNum(z);
        }
    });
    return jzDataToBeproduct;
}
export function quoteTotalPriceActionLogic(quo,jzDataToBeproduct,hidden_MultiYearWarrantyTotalPrice,QuoteDecision_Button){
    var s = 0;
    var x = 0;
    var l = 0;
    // 非第三方产品标准定价总额
    var y = 0;
    var yy = 0;
    // 非第三方产品报价总额
    var z = quo.QuoteTotal_Page__c;
    // 产品报价总额
    var zz = 0;
    z = localParseFloat(z);
    //no discount price 合计
    var noDiscountPriceTotal = hidden_MultiYearWarrantyTotalPrice;
    noDiscountPriceTotal = localParseFloat(noDiscountPriceTotal);
    jzDataToBeproduct.forEach(jzdtbt=>{
        s = jzdtbt.Quantity__c;
        s = localParseInt(s);
        l = jzdtbt.ListPrice_Page;
        l = localParseInt(l);
        x = s * l;
        // 供应商名称
        var VenderName = jzdtbt.VenderName;
        var backbutton = QuoteDecision_Button;
        if (backbutton == '') {
            VenderName = '';
        }
        // OSH 计算标准定价总额
        if (VenderName == 'OSH' || VenderName == '') {
            y = y + x;
            // 非OSH 将产品报价总额 减去 第三方产品
        } else {
            z = z - x;
        }
    });
    jzDataToBeproduct.forEach(jzdtbt=>{
        //行项目 no discount price:
        var noDiscountPrice = jzdtbt.pageObject.ServicePrice__c;
        noDiscountPrice = localParseFloat(noDiscountPrice);
        // 供应商名称
        var VenderName = jzdtbt.VenderName;
        s = jzdtbt.Quantity__c;
        s = localParseInt(s);
        l = jzdtbt.ListPrice_Page;
        l = localParseInt(l);
        // 行项目 标准定价小计
        x = s * l;
        x = localParseFloat(x);
        if ((s == 0) || (x == 0)) {
            //不处理
        } else {
            var backbutton = QuoteDecision_Button;
            if (backbutton == '') {
                VenderName = '';
            }
            if (VenderName == 'OSH' || VenderName == '') {
                yy = localParseFloat(x * (z - noDiscountPriceTotal) / y);
                jzdtbt.pageObject.Subtotal__c = toNum(yy + s * noDiscountPrice);
                // jzdtbt.Subtotal__c = toNumComma(yy + s * noDiscountPrice);
                jzdtbt.Subtotal__c = yy + s * noDiscountPrice;
                // jzdtbt.UnitPrice_Page__c = toNumComma(yy / s + noDiscountPrice);
                jzdtbt.UnitPrice_Page__c = yy / s + noDiscountPrice;
            } else {
                yy = localParseFloat(x);
            }
            zz = zz + yy;
        }
    });
    quo.QuoteTotal_Page__c = toNumComma(zz + noDiscountPriceTotal);
    quoExp = quo;
    return jzDataToBeproduct;
}
//删除产品明细和待选产品  item是选中的产品明细对象  TypeName是选中的产品明细对对应的方案类型
export function UnitPriceUpdateLogic(quo,jzDataToBeproduct,QuoteDecision_Button){
    debugger
    var num;
    num = quo.Quote_Adjust_Calculate__c;
    num = localParseFloat(num);
    quo.Quote_Adjust_Calculate__c = toNumComma(num);
    num = (100 + num) / 100;
    var price = 0;
    jzDataToBeproduct.forEach(jzdtbt=>{
        var VenderName = jzdtbt.VenderName;
        price = jzdtbt.ListPrice_Page;
        price = localParseFloat(price);
        var noDiscountPrice = jzdtbt.pageObject.ServicePrice__c;
        noDiscountPrice = localParseFloat(noDiscountPrice);
        var backbutton = QuoteDecision_Button;
        if (backbutton == '') {
            VenderName = '';
        }
        if (price != '' && VenderName == 'OSH') {
            // jzdtbt.UnitPrice_Page__c = toNumComma(price * num + noDiscountPrice);
            jzdtbt.UnitPrice_Page__c = price * num + noDiscountPrice;
        } else if (price != '' && VenderName == '') {
            // jzdtbt.UnitPrice_Page__c = toNumComma(price * num + noDiscountPrice);
            jzdtbt.UnitPrice_Page__c = price * num + noDiscountPrice;
        }
    });
    quoExp = quo;
    return jzDataToBeproduct;
}
export function calGuranteePeriodLogic(jzDataToBeproduct,AllGurantee_Period){
    jzDataToBeproduct.forEach(jzdtbt=>{
        // 保修
        var multiYearWarranty = true;
        if (jzdtbt.multiYearWarranty__c) {
            multiYearWarranty = jzdtbt.multiYearWarranty__c;
        }
        // 保修类型
        var warrantyType = jzdtbt.warrantyType__c;
        // 产品保修类型
        var GuranteeType = jzdtbt.pageObject.GuranteeType__c;
        // 产品保修期
        var ProductEntend_gurantee_period = jzdtbt.pageObject.ProductEntend_gurantee_period_all__c;
        // 计提年限
        var provistonPeriod = 0;
        // 根据产品信息设置保修年限
        if (GuranteeType == '服务') {
            jzdtbt.pageObject.GuaranteePeriod__c = ProductEntend_gurantee_period | 0;
            jzdtbt.GuaranteePeriod__c = ProductEntend_gurantee_period | 0;
            provistonPeriod = ProductEntend_gurantee_period;
        } else if (GuranteeType == '市场') {
            if (multiYearWarranty == true) {
                if (localParseFloat(ProductEntend_gurantee_period) >= localParseFloat(AllGurantee_Period)) {
                    jzdtbt.pageObject.GuaranteePeriod__c = ProductEntend_gurantee_period | 0;
                    jzdtbt.GuaranteePeriod__c = ProductEntend_gurantee_period | 0;
                } else {
                    jzdtbt.pageObject.GuaranteePeriod__c = AllGurantee_Period;
                    jzdtbt.GuaranteePeriod__c = AllGurantee_Period;
                }
                provistonPeriod = ProductEntend_gurantee_period;
            } else {
                jzdtbt.pageObject.GuaranteePeriod__c = 1;
                jzdtbt.GuaranteePeriod__c = 1;
            }
        } else {
            jzdtbt.pageObject.GuaranteePeriod__c = AllGurantee_Period;
            jzdtbt.GuaranteePeriod__c = AllGurantee_Period;
        }
        jzdtbt.pageObject.provistonPeriod__c = provistonPeriod | 0;
    });
    return jzDataToBeproduct;
}
export function PrintCustomerNameoptionsvlue(options_hp,selection_hp,quo,options_hpflg,accs){
    if (JSON.stringify(accs) != "{}" && JSON.stringify(accs) != "[]") {
        if (accs[0].Name) {
            var options_hpvalue = {};
            options_hpvalue.label = accs[0].Name;
            options_hpvalue.value = accs[0].Name;
            options_hp.push(options_hpvalue);
        }
        if (accs[0].Site) {
            var options_hpvalue = {};
            options_hpvalue.label = accs[0].Site;
            options_hpvalue.value = accs[0].Site;
            options_hp.push(options_hpvalue);
        }
        if (accs[0].Alias_Name2__c) {
            var options_hpvalue = {};
            options_hpvalue.label = accs[0].Alias_Name2__c;
            options_hpvalue.value = accs[0].Alias_Name2__c;
            options_hp.push(options_hpvalue);
        }
        debugger
        if (!quo.Print_HP_Name__c ||
            (quo.Print_HP_Name__c !== accs[0].Name &&
             quo.Print_HP_Name__c !== accs[0].Site &&
             quo.Print_HP_Name__c !== accs[0].Alias_Name2__c)
            ) {
            selection_hp = accs[0].Name;
        } else {
            selection_hp = quo.Print_HP_Name__c;
        }
        options_hpflg = false;
    }
    selection_hpExp = selection_hp;
    options_hpflgExp = options_hpflg;
    console.warn('selection_hp'+selection_hp);
    return options_hp
}
export function initquoassignment(quote,quoc,it){
    var quo = quoc
    var rtn = quo.Cancel_Decide__c;
    quo.rtn = !rtn ? it : !rtn;
    var CreatedDateTime = new Date(quote.CreatedDate);
    var PriceRefreshDate = new  Date(quote.PriceRefreshDate__c);
    quo.PriceRefreshPeriod = dateDaysBetween(!PriceRefreshDate ? CreatedDateTime : PriceRefreshDate,new Date());
    quo.QuoteName__c = quote.Name;
    quo.QuoteTotal_Page__c = toNumComma(quote.TotalPrice__c);
    quo.Dealer_Final_Price_Page__c = toNumComma(quote.Dealer_Final_Price__c);
    quo.Quote_Adjust_Amount_Page__c = toNumComma(quote.Quote_Adjust_Amount__c);
    if(quo.OCM_Agent1_Price__c){
        quo.OCM_Agent1_Price_Page__c = toNumComma(quote.OCM_Agent1_Price__c);
    }else{
        quo.OCM_Agent1_Price_Page__c = '';
    }
    quo.MultiYearWarrantyTotalPrice__c = toNumComma(quo.MultiYearWarrantyTotalPrice__c);
    quo.Agency1_Profit__c = toNumComma(quo.Agency1_Profit__c);
    quo.Agency2_Profit__c = toNumComma(quo.Agency2_Profit__c);
    //预测金额修改 fy
    quo.OCM_Sales_Forecast__c = toNumComma(quo.OCM_Sales_Forecast__c);
    //预测金额修改 fy
    if(!quote.QuotationChange__c){
        quo.QuotationChange__c = '';
    }
    if(!quote.Installation_location__c){
        quo.Installation_location__c = '';
    }
    if(quote.Agent1_Agent2_Price__c){
        quo.Agent1_Agent2_Price_Page__c = toNumComma(quote.Agent1_Agent2_Price__c);
    }else{
        quo.Agent1_Agent2_Price_Page__c = '';
    }
    quo.hidden_Estimation_List = quote.Estimation_List_Price__c;
    return quo;
}
export function initquoassignmentcopy(quote,quoc,it){
    debugger
    var quo = quoc
    let Name = quote.Name;
    var QX = Name.indexOf('已取消:');
    if (QX >= 0) {
      quo.Name = quo.Name.substring(QX + 4);
    }
    quo.QuoteName__c = quo.Name;
    quo.IsQuoteTrial__c = false;
    quo.Cancel_Decide__c = false;
    quo.PriceRefreshDate__c = new Date();
    quo.Quote_Date__c = null;
    quo.Quote_Print_Date__c = null;
    quo.QuoteTotal_Page__c = toNumComma(quote.TotalPrice__c);
    if(quo.OCM_Agent1_Price__c){
        quo.OCM_Agent1_Price_Page__c = toNumComma(quote.OCM_Agent1_Price__c);
    }else{
        quo.OCM_Agent1_Price_Page__c = '';
    }
    quo.Agency1_Profit__c = toNumComma(quo.Agency1_Profit__c);
    quo.Agency2_Profit__c = toNumComma(quo.Agency2_Profit__c);
    if(quote.Agent1_Agent2_Price__c){
        quo.Agent1_Agent2_Price_Page__c = toNumComma(quote.Agent1_Agent2_Price__c);
    }else{
        quo.Agent1_Agent2_Price_Page__c = '';
    }
    quo.Dealer_Final_Price_Page__c = toNumComma(quote.Dealer_Final_Price__c);
    //预测金额修改 fy
    quo.OCM_Sales_Forecast__c = toNumComma(quo.OCM_Sales_Forecast__c);
    //预测金额修改 fy
    // DB202311242191 【报价单】报价单合同金额更新和生成新报价单规则确认和修改 fy start
    if(!quo.Quote_Adjust_Calculate__c){
        quo.Quote_Adjust_Calculate__c = 0;
    }
    if(!quote.Quote_Adjust_Amount__c){
        quo.Quote_Adjust_Amount_Page__c = 0;
    }else{
        quo.Quote_Adjust_Amount_Page__c = toNumComma(quote.Quote_Adjust_Amount__c);
    }
    // quo.Quote_Adjust_Calculate__c = '';
    // quo.Quote_Adjust_Amount_Page__c = '';
    // DB202311242191 【报价单】报价单合同金额更新和生成新报价单规则确认和修改 fy end
    quo.hidden_Estimation_List = quote.Estimation_List_Price__c;
    quo.PriceRefreshPeriod = null;
    if(!quote.QuotationChange__c){
        quo.QuotationChange__c = '';
    }
    if(!quote.Installation_location__c){
        quo.Installation_location__c = '';
    }
    var rtn = quo.Cancel_Decide__c;
    quo.rtn = !rtn ? it : !rtn;
    return quo;
}
export function salesProfit1Logic(quo,Salesprofit1value){
    var x = quo.Dealer_Final_Price_Page__c;
    var y = quo.OCM_Agent1_Price_Page__c;
    debugger
    y = y + '';
    y = y.replace(/ /g, "");
    if (y.length == 0) {
    var z = quo.Agent1_Agent2_Price_Page__c;
        z = z + '';
        z = z.replace(/ /g, "");
        if (z.length == 0) {
            quo.OCM_Agent1_Price_Page__c = '';
            Salesprofit1value = '';
            quo.Agency1_Profit__c = '';
        } else {
            quo.OCM_Agent1_Price_Page__c = toNumComma(0);
            Salesprofit1value = toNum(0);
            quo.Agency1_Profit__c = toNumComma(0);
        }
    } else {
        quo.OCM_Agent1_Price_Page__c = toNumComma(y);
        x = localParseFloat(x);
        y = localParseFloat(y);
        var t = quo.Agent1_Agent2_Price_Page__c;
        if (t.length == 0) {
            Salesprofit1value = toNum(x - y);
            quo.Agency1_Profit__c = toNumComma(x - y);
        } else {
            t = localParseFloat(t);
            Salesprofit1value = toNum(t - y);
            quo.Agency1_Profit__c = toNumComma(t - y);
        }
    }
    quoExp = quo;
    return Salesprofit1value;
}
export function salesCalculation1Logic(quo,Salesprofit1value,SalesCalculation1value){
    var w = quo.OCM_Agent1_Price_Page__c;
    w = w + '';
    w = w.replace(/ /g, '');
    var x = Salesprofit1value;
    var y = quo.Dealer_Final_Price_Page__c;
    var z = quo.Agent1_Agent2_Price_Page__c;
    z = z + '';
    z = z.replace(/ /g, '');
    if (w.length == 0) {
        SalesCalculation1value = '';
        quo.Agency1_Profit_Rate__c = '';
    } else {
        x = localParseFloat(x);
        var t = 0;
        if (z.length == 0) {
            y = localParseFloat(y);
            if (y != 0) {
                t = x / y * 100;
            } else {
                t = 0;
            }
        } else {
            z = localParseFloat(z);
            if (z != 0) {
                t = x / z * 100;
            } else {
                t = 0;
            }
        }
        SalesCalculation1value = toNum(t);
        quo.Agency1_Profit_Rate__c = toNumComma(t);
    }
    quoExp = quo;
    return SalesCalculation1value;
}
export function salesProfit2Logic(quo,Salesprofit2value){
    var x = quo.Dealer_Final_Price_Page__c;
    var y = quo.Agent1_Agent2_Price_Page__c;
    y = y + '';
    y = y.replace(/ /g, "");
    if (y.length == 0) {
        quo.Agent1_Agent2_Price_Page__c = '';
        Salesprofit2value ='';
        quo.Agency2_Profit__c = '';
    } else {
        x = localParseFloat(x);
        y = localParseFloat(y);
        quo.Agent1_Agent2_Price_Page__c = toNumComma(y);
        Salesprofit2value = toNum(x - y);
        quo.Agency2_Profit__c = toNumComma(x - y);
    }
    quoExp = quo;
    return Salesprofit2value;
}
/*
    计算第二经销商栏最右边的百分比 2次販売店利益率_元 =  第二经销商利润除以医院的合同金额
    */
export function salesCalculation2Logic(quo,Salesprofit2value,SalesCalculation2value){
    var w = quo.Agent1_Agent2_Price_Page__c;
    w = w + '';
    w = w.replace(/ /g, '');
    var x = Salesprofit2value;
    var y = quo.Dealer_Final_Price_Page__c;
    if (w.length == 0) {
        SalesCalculation2value = '';
        quo.Agency2_Profit_Rate__c = '';
    } else {
        x = localParseFloat(x);
        y = localParseFloat(y);
        if ((y == 0)) {
            SalesCalculation2value = toNum(0);
            quo.Agency2_Profit_Rate__c = toNumComma(0);
        } else {
            var z = x / y * 100;
            SalesCalculation2value = toNum(z);
            quo.Agency2_Profit_Rate__c = toNumComma(z);
        }
    }
    quoExp = quo;
    return SalesCalculation2value;
}
export function additionabuttonLoc(SelectedNewsetProduct,quo,oppInfo,jzDataToBeproduct){
    var Str = SelectDone(SelectedNewsetProduct);
    var quoc = saveEvoluationLogic(quo,oppInfo,jzDataToBeproduct);
    var oppInfoc = oppInfosave;
    var quoLineItemc = quoLineItemsave;
    var quoLineItemCan = JSON.stringify(quoLineItemc);
    var oppInfoCan = JSON.stringify(oppInfoc);
    var quoCan = JSON.stringify(quoc);
    StrExp = Str;
    return {setProduct_text:Str,
        activitiesCan:quoLineItemCan,
        oppInfoc:oppInfoCan,
        quoc:quoCan};
}
export function onsaveToBeproductLoc(data,jzDataToBeproduct){
    var dataMap = new Map();
    var fag = false;
    data.forEach(item=>{
        var key = Number(item.lineNo);
        var value = {Quantity__c:'',UnitPrice_Page__c:'',Learning_Community:''}
        if(item.Quantity__c != undefined){
            value.Quantity__c = item.Quantity__c;
            fag = true;
        }
        if(item.UnitPrice_Page__c != undefined){
            value.UnitPrice_Page__c = item.UnitPrice_Page__c;
        }
        if(item.Learning_Community != undefined){
            value.Learning_Community = item.Learning_Community;
        }
        dataMap.set(key,value);
    });
    jzDataToBeproduct.forEach(jzdtbt=>{
        var x, y, z, c;
        if(dataMap.has(jzdtbt.lineNo)){
            var datavaue = dataMap.get(jzdtbt.lineNo);
            if(datavaue.Quantity__c){
                jzdtbt.Quantity__c = localParseInt(datavaue.Quantity__c);
            }
            if(datavaue.UnitPrice_Page__c){
                // jzdtbt.UnitPrice_Page__c = toNumComma(datavaue.UnitPrice_Page__c);
                jzdtbt.UnitPrice_Page__c = datavaue.UnitPrice_Page__c;
            }
            if(datavaue.Learning_Community){
                jzdtbt.Learning_Community = datavaue.Learning_Community;
            }
            x = localParseInt(jzdtbt.Quantity__c);
            y = localParseFloat(jzdtbt.UnitPrice_Page__c);
            c = localParseFloat(jzdtbt.Cost_c);
            z = x * y;
            // jzdtbt.Subtotal__c = toNumComma(z)
            jzdtbt.Subtotal__c = z
            // jzdtbt.pageObject.Subtotal__c = toNumComma(z)
            jzdtbt.pageObject.Subtotal__c = z
            z = x * y;
            jzdtbt.Cost_Subtotal_c = toNum(z);
        }
    });
    fagExp = fag;
    return jzDataToBeproduct;
}
export function PrintButtonLoc(quo,oppInfo,jzDataToBeproduct,CheckItem,WinOrDecideAlert,
    productStatusUpdated,enableSales,oppId,quoId,newQuoteFlag,changedAfterPrint,quoteGurantee_Period,
    quotemultiYearWarranty,selection_hp,SkipQuotefilg,QuoteDecision,agency1Name){
        debugger
    var quoc = saveEvoluationLogic(quo,oppInfo,jzDataToBeproduct);
    var oppInfoc = oppInfosave;
    var quoLineItemc = quoLineItemsave;
    var quoLineItemCan = JSON.stringify(quoLineItemc);
    var CheckItemCan = JSON.stringify(CheckItem);
    var oppInfoCan = JSON.stringify(oppInfoc);
    var quoCan = JSON.stringify(quoc);
    var data ={activitiesCan:quoLineItemCan,
        CheckItemCan:CheckItemCan,
        WinOrDecideAlertc:WinOrDecideAlert,
        productStatusUpdatedc:productStatusUpdated,
        oppInfoc:oppInfoCan,
        quoc:quoCan,
        enableSalesc:enableSales,
        oppIdc:oppId,
        quoIdc:quoId,
        newQuoteFlagc:newQuoteFlag,
        changedAfterPrintc:changedAfterPrint,
        quoteGurantee_Periodc:quoteGurantee_Period,
        quotemultiYearWarrantyc:quotemultiYearWarranty,
        selection_hpc:selection_hp,
        SkipQuotefilgc:SkipQuotefilg,
        QuoteDecisionc:QuoteDecision,
        // DB202311242191 【报价单】报价单合同金额更新和生成新报价单规则确认和修改 fy start
        agency1Namec:agency1Name
         // DB202311242191 【报价单】报价单合同金额更新和生成新报价单规则确认和修改 fy end
    };
    return data;
}
export function saverebackloc(resaut,quoId,nafg){
    alertExp  = ''
    var Setmap = new Map()
    var key = Object.keys(resaut)
    key.forEach(item=>{
        Setmap.set(item,resaut[item]);
    });
    if(Setmap.has('errormessage')){
        errorflg = true;
        alertExp = Setmap.get('errormessage');
    }else{
        if(Setmap.has('warn')){
            errorflgw = true;
            alertExp = Setmap.get('warn');
        }
        if(Setmap.has('quoId')){
            quoId = Setmap.get('quoId');
        }
        if(Setmap.has('quoId')){
            window.open('/lightning/n/lexNewQuoteEntry#Id=' + Setmap.get('quoId'), '_self');
            // window.location.href ='/lightning/n/lexNewQuoteEntry#Id='+Setmap.get('quoId');
            flg = true;
        }
        errorflg = false;
    }
    nafgExp = resultFlag(nafg,Setmap)
    return quoId;
}
// 优惠折扣 = 优惠价格 / (报价总额 -  No discount price 合计);
export function DisCalculationfunctionLoc(quo){
    var x = quo.Discount_Amount__c;
    x = localParseFloat(x);
    var y = quo.QuoteTotal_Page__c;
    y = localParseFloat(y);
    if ((y == 0)) {
        quo.Discount_Amount_Calculate__c  = '';
    } else {
        var z = 0;
        z = x / y * 100;
        z = z.toFixed(2);
        quo.Discount_Amount_Calculate__c  = toNum(z);
    }
    return quo;
}
// 根据医院小计计算报价总额
export function quoteTotalPriceLoc(jzDataToBeproduct,quo,quoId,oppInfo,Saleslet){
    debugger
    var x = 0;
    var y = 0;
    jzDataToBeproduct.forEach(jzdtbt=>{
        x = jzdtbt.pageObject.Subtotal__c;
        x = localParseFloat(x);
        y = y + localParseFloat(x);
    });
    quo.QuoteTotal_Page__c = toNumComma(y);
    var z = quo.Estimation_List_Price__c;
    var id = quoId;
    // if(!id){
        var IsQuoteTrial =quo.IsQuoteTrial__c;
        if(!IsQuoteTrial){
            var mp =quo.MultiYearWarrantyTotalPrice__c;
            mp = localParseFloat(mp);
            var num = quo.Quote_Adjust_Calculate__c;
            num = localParseFloat(num);
            quo.Quote_Adjust_Calculate__c = toNumComma(num);
            num = (100 + num) / 100;
            z=localParseFloat(z);
            var rh = oppInfo.rate_hospital;
            var ra = oppInfo.rate_agency1;
            quo.Dealer_Final_Price_Page__c = toNumComma(z*rh);
            quo.OCM_Agent1_Price_Page__c = Saleslet ? toNumComma(z*num*ra+mp) : '';
        }
    // }
    quoExp = quo;
    return jzDataToBeproduct;
}
//计算隐藏 listPirce 汇总 和 UnitPrice(医院单价) 汇总
export function calUnitPriceTotalLoc(jzDataToBeproduct){
    var ListPriceTotal = 0.0,
        listPrice = 0.0;
    var unitPriceTotal = 0.0,
        unitPrice = 0.0;
    jzDataToBeproduct.forEach(jzdtbt=>{
        listPrice = jzdtbt.ListPrice_Page;
        unitPrice = jzdtbt.UnitPrice_Page__c;
        ListPriceTotal += localParseFloat(listPrice);
        unitPriceTotal += localParseFloat(unitPrice);
    });
    ListPriceTotalExp = ListPriceTotal;
    unitPriceTotalExp = unitPriceTotal;
    jzDataToBeproduct =[].concat(jzDataToBeproduct);
    return jzDataToBeproduct;
}
//判断进销商1 和 2 清空 利润百分比显示
export function pageArrangeLoc(quo){
    if (!quo.OCM_Agent1_Price_Page__c) {
      quo.Agency1_Profit__c = '';
      quo.Agency1_Profit_Rate__c = '';
      quo.OCM_Agent1_Price_Page__c = '';
    }
    if (!quo.Agent1_Agent2_Price_Page__c) {
      quo.Agency2_Profit__c = '';
      quo.Agency2_Profit_Rate__c = '';
      quo.Agent1_Agent2_Price_Page__c = '';
    }
    return quo;
}
export function openQuotePage(b, b2, b3) {
    var quoid = b3;
    if (b2) {
    } else {
        if (b) {
            //openPopup('/apex/contractdetailpdf?id=quoid');
            window.open('/apex/contractdetailpdf?id=' + quoid, 'Contract');
        } else {
            //openPopup('/apex/quotepdf?id=quoid');
            window.open('/apex/quotepdf?id=' + quoid, 'Quote');
        }
    }
}
export function quoteinit(quo){
    if (!quo.Gurantee_Period__c) {
        quo.Gurantee_Period__c = '1';
    }
    if (quo.Quote_Expiration_Date__c == null) {
        quo.Quote_Expiration_Date__c = addDay(30,new Date());
    }
    quo.Offer_Amount__c = true;
    quo.TOTAL__c = true;
    quo.Preferential_Gurantee_Period__c = true;
    return quo;
}
/*
    如果询价是经销商贩卖,OCM预测额销售 = 第一经销商
    如果询价是OCM直销,OCM预测额销售 = 医院的合同金额
    */
export function setOCMAmountc(enableSales,quo,oppInfo){
    var s, t;
        s = enableSales;
        if (s) {
            t = quo.OCM_Agent1_Price_Page__c;
        } else {
            t = quo.Dealer_Final_Price_Page__c;
        }
        t = localParseFloat(t);
        oppInfo.hidden_Wholesale_Price = toNum(t);
        oppInfo.Wholesale_Price__c = toNumComma(t);
        //预测金额修改 fy
        quo.OCM_Sales_Forecast__c = toNumComma(t);
        quoExp = quo;
        //预测金额修改 fy
    return oppInfo;
}
// 优惠价格 = 报价总额 - 医院的合同金额
    // 然后调用 DisCalculation
export function DisAmountfunctionc(quo){
    var x = quo.QuoteTotal_Page__c;
    x = localParseFloat(x);
    var y = quo.Dealer_Final_Price_Page__c;
    y = localParseFloat(y);
    quo.Discount_Amount__c = toNum(x - y);
    return quo;
}
export function SFDAtranslate(key){
    var value = '';
    if(key == '準備中'){
        value = '准备中';
    }else if(key == '新製品申請中'){
        value = '新产品注册中';
    }else if(key == '有効'){
        value = '有效';
    }else if(key == '失効(期限内生産済在庫対応)'){
        value = '失效或停止(注册证有效期内生产的库存品对应)';
    }else if(key == '失効(再申請中)'){
        value = '失效-重新申请中';
    }else if(key == '失効(申請無)'){
        value = '失效-不再注册';
    }else if(key == '有効(再申請中)'){
        value = '有效-重新申请中';
    }else{
        value = key;
    }
    return value;
}
export function decisionlol(jzDataToBeproduct,oppInfo,QuotationCalculationFag){
    var ff = false;
    alertExp = '';
    var Shut = AlertForCFDA(jzDataToBeproduct);
    var ifAuth = AlertAuthorize(oppInfo);
    var arr = [];
    var Venderflag = false;
    jzDataToBeproduct.forEach(jzdtbt=>{
        var VenderName = jzdtbt.VenderName;
        var prdouctName = jzdtbt.pageObject.Name__c;
        if (prdouctName) {
            arr.push(VenderName);
        }
    });
    for (var i = 0; i < arr.length; i++) {
        if (arr[0] != arr[i]) {
            Venderflag = true;
        }
    }
    var listPrice = CheckForListPrice(jzDataToBeproduct);
    var cost = CheckForCost(jzDataToBeproduct);
    if (Shut == true) {
        ff = true;
        alertExp = '提示:包含重新申请CFDA的产品,不可Decide。';
    } else if (ifAuth == false) {
        ff = true;
        alertExp = '提示:该询价未授权,不可Decide';
    } else if (Venderflag == true) {
        ff = true;
        alertExp = '提示:请按照不同供应商拆单,不允许decide。';
    }else if (listPrice == true || cost == true) {
        ff = true;
        alertExp = '产品定价/成本为0,请联系产品本部。';
    }else if(QuotationCalculationFag){
        ff = true;
        alertExp = '产品配置发生变化,请再次进行报价计算';
    }
    return ff;
}
export function saveQuotel(quo,oppInfo,jzDataToBeproduct,CheckItem,WinOrDecideAlert,productStatusUpdated,enableSales,
    oppId,quoId,newQuoteFlag,changedAfterPrint,quoteGurantee_Period,quotemultiYearWarranty,selection_hp,SkipQuotefilg,quoteflg,agency1Name){
    var quoc = saveEvoluationLogic(quo,oppInfo,jzDataToBeproduct);
    debugger
    var oppInfoc = oppInfosave;
    var quoLineItemc = quoLineItemsave;
    var quoLineItemCan = JSON.stringify(quoLineItemc);
    var CheckItemCan = JSON.stringify(CheckItem);
    var oppInfoCan = JSON.stringify(oppInfoc);
    var quoCan = JSON.stringify(quoc);
    var SaveQuotecan = {activitiesCan:quoLineItemCan,
        CheckItemCan:CheckItemCan,
        WinOrDecideAlertc:WinOrDecideAlert,
        productStatusUpdatedc:productStatusUpdated,
        oppInfoc:oppInfoCan,
        quoc:quoCan,
        enableSalesc:enableSales,
        oppIdc:oppId,
        quoIdc:quoId,
        newQuoteFlagc:newQuoteFlag,
        changedAfterPrintc:changedAfterPrint,
        quoteGurantee_Periodc:quoteGurantee_Period,
        quotemultiYearWarrantyc:quotemultiYearWarranty,
        selection_hpc:selection_hp,
        SkipQuotefilgc:SkipQuotefilg,
        quoteflg:quoteflg,
         // DB202311242191 【报价单】报价单合同金额更新和生成新报价单规则确认和修改 fy start
        agency1Namec:agency1Name
         // DB202311242191 【报价单】报价单合同金额更新和生成新报价单规则确认和修改 fy end
    }
    return SaveQuotecan;
}
export function resultFlag(nafg,Setmap){
    debugger
    if(!Setmap){
        nafg.dfpp = false;
        nafg.qname = false;
        nafg.qacc = false;
        nafg.qaapc = false;
        nafg.Agency1 = false;
        nafg.nAgency1 = false;
        nafg.oapp = false;
        nafg.noapp = false;
        nafg.Agency2 = false;
        nafg.nAgency2 = false;
        nafg.aapp = false;
        nafg.naapp = false;
    }else{
        if(Setmap.has('dfpp')){
            nafg.dfpp = true;
        }else{
            nafg.dfpp = false;
        }
        if(Setmap.has('qname')){
            nafg.qname = true;
        }else{
            nafg.qname = false;
        }
        if(Setmap.has('qacc')){
            nafg.qacc = true;
        }else{
            nafg.qacc = false;
        }
        if(Setmap.has('qaapc')){
            nafg.qaapc = true;
        }else{
            nafg.qaapc = false;
        }
        if(Setmap.has('Agency1')){
            nafg.Agency1 = true;
        }else{
            nafg.Agency1 = false;
        }
        if(Setmap.has('nAgency1')){
            nafg.nAgency1 = true;
        }else{
            nafg.nAgency1 = false;
        }
        if(Setmap.has('oapp')){
            nafg.oapp = true;
        }else{
            nafg.oapp = false;
        }
        if(Setmap.has('noapp')){
            nafg.noapp = true;
        }else{
            nafg.noapp = false;
        }
        if(Setmap.has('Agency2')){
            nafg.Agency2 = true;
        }else{
            nafg.Agency2 = false;
        }
        if(Setmap.has('nAgency2')){
            nafg.nAgency2 = true;
        }else{
            nafg.nAgency2 = false;
        }
        if(Setmap.has('aapp')){
            nafg.aapp = true;
        }else{
            nafg.aapp = false;
        }
        if(Setmap.has('naapp')){
            nafg.naapp = true;
        }else{
            nafg.naapp = false;
        }
    }
    return nafg;
}
// 计算产品标准定价总额
export function EstimationL(jzDataToBeproduct,quo){
    var x, y, z;
    x = 0;
    y = 0;
    z = 0;
    jzDataToBeproduct.forEach(jzdtbt=>{
        x = jzdtbt.ListPrice_Page;
        y = jzdtbt.Quantity__c;
        x = localParseFloat(x);
        y = localParseFloat(y);
        z = z + (x * y);
    });
    jzDataToBeproduct =[].concat(jzDataToBeproduct);
    quo.hidden_Estimation_List = toNum(z);
    quo.Estimation_List_Price__c = toNumComma(z);
    quoExp = quo;
    return jzDataToBeproduct;
}
export function  checkch(jzDataToBeproduct){
    var activities = [];
    var flag = false;
    jzDataToBeproduct.forEach(jzdtbt=>{
        var lineId = jzdtbt.pageObject.PricebookEntryId;
        if (lineId) {
            var item = new Object();
            item.PricebookEntryId = jzdtbt.pageObject.PricebookEntryId;
            item.SFDA_Status__c = jzdtbt.pageObject.SFDA_Status__c;
            item.UnitPrice__c = localParseFloat(jzdtbt.UnitPrice_Page__c);
            item.ListPrice__c = localParseFloat(jzdtbt.ListPrice_Page);
            item.Quantity = localParseInt(jzdtbt.Quantity__c);
            item.Is_DangerousChemicals = jzdtbt.Is_DangerousChemicals;
            item.Is_CanNotCancelFlag = jzdtbt.CanNotCancelledGurantee;
            //DB202312560765 you 否有EndoRapid资质检查 start
            item.IFEndoRapidFlag = jzdtbt.IFEndoRapidFlag;
            //DB202312560765 you 否有EndoRapid资质检查 end
            if(jzdtbt.PricebookEntry.Product2.ProductCategory__c == 'SP主机'){
                item.SPAssistantFlag = true;
                flag = true;
            }
            activities.push(item);
        }
    });
    var maps = new Map();
    maps.set('activities',activities);
    maps.set('flag',flag);
    return maps;
}
export function  Agent1comput(quo,Saleslet,oppInfo){
    var z = quo.Estimation_List_Price__c;
    var mp =quo.MultiYearWarrantyTotalPrice__c;
    mp = localParseFloat(mp);
    var num = quo.Quote_Adjust_Calculate__c;
    num = localParseFloat(num);
    quo.Quote_Adjust_Calculate__c = toNumComma(num);
    num = (100 + num) / 100;
    z = localParseFloat(z);
    var rh = oppInfo.rate_hospital;
    var ra = oppInfo.rate_agency1;
    quo.Dealer_Final_Price_Page__c = toNumComma(z*rh);
    quo.OCM_Agent1_Price_Page__c = Saleslet ? toNumComma(z*num*ra+mp):'';
    return quo;
}