
crmApp.factory('TaxPayerSI', function ($http) {
    var ApplicationPath = "";
    return {
        getTaxPayer: function (d) {
            return $http.get("/api/taxpayerapi/gettaxpayer/" + d);
        },
        getPagedTPAgentList: function (d) {
            return $http.post("/api/taxpayerapi/getpagedtpagentlist", d);
        },
        getPagedChangeHistory: function (d) {
            return $http.post("/api/taxpayerapi/getpagedchangehistory", d);
        },
        insertTaxPayer: function (tpName, tpTaxNo, tpIdentityNo, tpType) {
            return $http({
                url: '/api/taxpayerapi/InsertTaxPayer',
                method: "POST",
                params: {
                    strTPName: tpName,
                    strTPTaxNo: tpTaxNo,
                    strTPIdentityNo: tpIdentityNo,
                    strTPType: tpType
                }
            });
        },
        getActivity: function (d) {
            return $http.get("url");
        },

        UpdatedInOutboundDetails: function (d) {
            return $http.post("/api/taxpayerapi/UpdateInOrOutBoundDetail", d);
        },

        getTPStatusBayarBalik: function (d) {
            return $http.get("/api/taxpayerapi/GetTPGetTPStatusBayarBalik/" + d);
        },
        searchTP: function (d) {
            return $http.post("/api/taxpayerapi/SearchTaxPayer/", d);
        },

        getDropdown: function () {
            return $http.get("/api/taxpayerapi/GetDropdown/");
        },

        getOutboundListByTaxPayer: function (d) {
            return $http.post("/api/taxpayerapi/getoutboundlistbytaxpayer", d);
        },

        getAdditionalDataByTP: function (d) {
            return $http.post("/api/taxpayerapi/GetAdditionalDataByTP", d);
        },
        getRingkasanBayaranBalikTP: function (d) {
            return $http.post("/api/taxpayerapi/GetRingkasanBayaranBalikTP", d);
        },
        getLejerDataByTP: function (d) {
            return $http.post("/api/taxpayerapi/GetLejerDataByTP", d);
        },
        getRingkasanLejerByTP: function (d) {
            return $http.post("/api/taxpayerapi/GetRingkasanLejerByTP", d);
        },
        getKawalBorangDataByTP: function (d) {
            return $http.post("/api/taxpayerapi/GetKawalBorangDataByTP", d);
        },
        getRingkasanTaksiranByTP: function (d) {
            return $http.post("/api/taxpayerapi/GetRingkasanTaksiranByTP", d);
        },
        getStatusBayaranBalikbyTP: function (d) {
            return $http.post("/api/taxpayerapi/GetStatusBayaranBalikbyTP", d);
        },
        getPungutanCPbyTP: function (d) {
            return $http.post("/api/taxpayerapi/GetPungutanCPbyTP", d);
        },
        getPungutanCKHTbyTP: function (d) {
            return $http.post("/api/taxpayerapi/GetPungutanCKHTbyTP", d);
        },
        getAllAnsuranByTP: function (d) {
            return $http.post("/api/taxpayerapi/GetAllAnsuranByTP", d);
        },
        getAllAnggaranByTP: function (d) {
            return $http.post("/api/taxpayerapi/GetAllAnggaranByTP", d);
        } 

    }
});

crmApp.factory('ActivitySI', function ($http) {
    return {
        getActivity: function (d) {
            return $http.get("/api/activityapi/GetActivity/" + d);
        },
        getActivityDDLOptions: function () {
            return $http.get("/api/activityapi/GetActivityDDLOptions/");
        },
        getNewActivity: function (d) {
            return $http.post("/api/activityapi/GetNewActivity", d);
        },
        getOutboundCountByTP: function (d) {
            return $http.post("/api/activityapi/GetOutboundCountByTP/", d);
        },
        addActCatatan: function (d) {
            return $http.post("/api/activityapi/AddActCatatan/", d);
        },
        updateActCatatan: function (d) {
            return $http.post("/api/activityapi/UpdateActCatatan/", d);
        },
        deleteActCatatan: function (d) {
            return $http.post("/api/activityapi/DeleteActCatatan/", d);
        },
        uploadAttachment: function (file) {
            return {
                url: "/api/activityapi/UploadAttachment/",
                data: { file: file }
            };
        },
        saveActSession: function (d) {
            return $http.post("/api/activityapi/SaveActSession/", d);
        },
        getAttachment: function (d) {
            return "/api/activityapi/GetAttachment/" + d + "/";
        },
        deleteAttachment: function (d) {
            return $http.post("/api/activityapi/DeleteAttachment/", d);
        },
        //updateActCatatan: function (d) {
        //    return $http.post("/api/activityapi/UpdateActCatatan/", d);
        //},
        linkUnlinkActivity: function (d) {
            return $http.post("/api/activityapi/LinkUnlinkActivity/", d);
        },
        deleteActivity: function (d) {
            return $http.post("/api/activityapi/DeleteActivity/", d);
        },
        closeActivityEmail: function (d) {
            return $http.post("/api/activityapi/CloseActivityEmail/", d);
        },
        reopenActivity: function (d) {
            return $http.post("/api/activityapi/ReopenActivity/", d);
        },
        getActDocReceived: function (d) {
            return $http.get("/api/activityapi/getActDocReceived/" + d);
        },
        saveActivity: function (d) {
            return $http.post("/api/activityapi/SaveActivity", d);
        },
        getPagedActivityListByID: function (d) {
            return $http.post("/api/activityapi/GetPagedActivityListByID", d);
        },
        validateCaseToBeUnlink: function (d) {
            return $http.post("/api/activityapi/ValidateCaseToBeUnlink", d);
        },
        getAllCatatanInString: function (d) {
            return $http.get("/api/activityapi/GetAllCatatanInString/" + d);
        },
        getMyPendingActInDashboard: function (d) {
            return $http.post("/api/activityapi/GetMyPendingActInDashboard", d);
        },
        getNewSessionKey: function () {
            return $http.get("/api/activityapi/GetNewSessionKey");
        },
        getCFFSummaryAttachment: function (d) {
            return $http.get("/api/activityapi/GetCFFSummaryAttachment/" + d);
        },
        getChangeStampbyID: function (d) {
            return $http.get("/api/activityapi/GetChangeStampbyID/" + d);
        },
        getActEmailTemplateDDLOptions: function () {
            return $http.get("/api/activityapi/GetActEmailTemplateDDLOptions");
        },
        printSlipKedatangan: function (d) {
            return $http.post("/api/activityapi/PrintSlipKedatangan/", d);
        },
        getAssignActivityForUnit: function (d) {
            return $http.post("/api/activityapi/GetAssignActivityForUnit", d);
        },

        getActWorkFlowAssignToByKategoryId: function (d) {
            return $http.post("/api/activityapi/GetActWorkFlowAssignToByKategoryId/", d);
        },
        getActWorkFlowSearchUserOrUnit: function (d) {
            return $http.post("/api/activityapi/GetActWorkFlowSearchUserOrUnit/", d);
        },
        insertActWorkflowAction: function (d) {
            return $http.post("/api/activityapi/InsertActWorkflowAction/", d);
        },
        printActPenerimaanDoc: function (d) {
            return $http.post("/api/activityapi/PrintActPenerimaanDoc/", d);
        },
        insertSlipKedatanganAction: function (d) {
            return $http.post("/api/activityapi/InsertSlipKedatanganAction/", d);
        },
        routeToAgent: function (d) {
            return $http.get("/api/activityapi/RouteToAgent/" + d);
        },
        getAssignedInboundCFFDraftActivity: function (d) {
            return $http.post("/api/activityapi/GetAssignedInboundCFFDraftActivity/", d);
        },

        getActOutboundDetails: function (OutboundId) {
            return $http({
                url: '/api/activityapi/GetActOutboundDetails/',
                method: "GET",
                params: {
                    //strName: name,
                    lgOutboundId: OutboundId
                }
            });
        },


    }
});

crmApp.factory('CaseSI', function ($http) {
    return {
        getCase: function (d) {
            return $http.get("/api/caseapi/GetCase/" + d);
        },
        getCaseSummary: function (d) {
            return $http.get("/api/caseapi/GetCaseSummary/" + d);
        },
        getOpenCase: function (d) {
            return $http.post("/api/caseapi/GetOpenCase/", d);
        },
        addCaseCatatan: function (d) {
            return $http.post("/api/caseapi/AddCaseCatatan/", d);
        },
        updateCaseCatatan: function (d) {
            return $http.post("/api/caseapi/UpdateCaseCatatan/", d);
        },
        deleteCaseCatatan: function (d) {
            return $http.post("/api/caseapi/DeleteCaseCatatan/", d);
        },
        getCaseDropdown: function () {
            return $http.get("/api/caseapi/GetCaseDropdown/");
        },
        getCaseNotaTemuduga: function (d) {
            return $http.get("/api/caseapi/GetCaseNotaTemuduga/" + d);
        },
        updateCase: function (d) {
            return $http.post("/api/caseapi/UpdateCase/", d);
        },
        deleteCase: function (d) {
            return $http.post("/api/caseapi/DeleteCase/", d);
        },
        reopenCase: function (d) {
            return $http.post("/api/caseapi/ReopenCase/", d);
        },
        getAllCatatan: function (d) {
            return $http.get("/api/caseapi/GetAllCaseCatatan/" + d);
        },
        getAllCatatanInString: function (d) {
            return $http.get("/api/caseapi/GetAllCatatanInString/" + d);
        },
        insertCaseWorkflowAction: function (d) {
            return $http.post("/api/caseapi/InsertCaseWorkFlowAction/", d);
        },
        getCurrentWorkFlowById: function (d) {
            return $http.get("/api/caseapi/GetCurrentWorkFlowById/" + d);
        },
        getPagedCaseListByID: function (d) {
            return $http.post("/api/caseapi/GetPagedCaseListByID", d);
        },
        getWorkFlowAssignToByKategoryId: function (d) {
            return $http.post("/api/caseapi/GetWorkFlowAssignToByKategoryId/", d);
        },
        getWorkFlowSearchUserOrUnit: function (d) {
            return $http.post("/api/caseapi/GetWorkFlowSearchUserOrUnit/", d);
        },
        getDashboardMyCreatedCase: function (d) {
            return $http.post("/api/caseapi/GetDashboardMyCreatedCase/", d);
        },
        getDashboardMyPendingCase: function (d) {
            return $http.post("/api/caseapi/GetDashboardMyPendingCase/", d);
        },
        getAssignCaseForUnit: function (d) {
            return $http.post("/api/caseapi/GetAssignCaseForUnit/", d);
        },
        uploadAttachment: function (file) {
            return {
                url: "/api/caseapi/UploadAttachment/",
                data: { file: file }
            };
        },
        getAttachment: function (d) {
            return "/api/caseapi/GetAttachment/" + d + "/";
        },
        deleteAttachment: function (d) {
            return $http.post("/api/caseapi/DeleteAttachment/", d);
        },
        printPenerimaanDoc: function (d) {
            return $http.post("/api/caseapi/PrintPenerimaanDoc/", d);
        },
        getCaseBulkAssignListing: function (d) {
            return $http.post("/api/caseapi/GetCaseBulkAssignListing/", d);
        },
        getCaseReassignListing: function (d) {
            return $http.post("/api/caseapi/GetCaseReassignListing/", d);
        },
        getCaseReassignDropdown: function () {
            return $http.get("/api/caseapi/GetCaseReassignDropdown/");
        },
        reassignBulkWorkflow: function (d) {
            return $http.post("/api/caseapi/ReassignBulkWorkflow/", d);
        },
        getCaseAssignDefaultUnitByUnitID : function(d)
        {
            return $http({
                url: '/api/caseapi/GetCaseAssignDefaultUnitByUnitID',
                method: "POST",
                params: {
                    UnitID : d
                }
            });
        }

    }
});

crmApp.factory('SearchSI', function ($http) {
    return {
        getSearchDropdown: function (d) {
            return $http.get("/api/searchapi/GetSearchDropdown/" + d);
        },
        getPagedSearchTP: function (d) {
            return $http.post("/api/searchapi/GetPagedSearchTP", d);
        },
        getSavedViewColumns: function (d) {
            return $http.post("/api/searchapi/GetSavedViewColumns", d);
        },
        getPagedSearchAct: function (d) {
            return $http.post("/api/searchapi/GetPagedSearchAct", d);
        },
        getPagedSearchCase: function (d) {
            return $http.post("/api/searchapi/GetPagedSearchCase", d);
        }
    }
});

crmApp.factory('AdminSI', function ($http) {
    return {
        getAllStatus: function (d) {
            return $http.get("/api/adminapi/GetAllStatus/" + d);
        },
        getAdvanceRulesDropdown: function (tableType, jenisKempenID) {
            //return $http.get("/api/adminapi/GetAdvanceRulesDropdown/" + d);
            return $http({
                url: '/api/adminapi/GetAdvanceRulesDropdown/',
                method: "GET",
                params: {
                    intTableType: tableType,
                    intJenisKempenID: jenisKempenID
                }
            });
        },
        getLookupParam: function (d) {
            return $http.post("/api/adminapi/GetLookupParam/", d);
        },
        addLookupParam: function (d) {
            return $http.post("/api/adminapi/AddLookupParam/", d);
        },
        addDefaultLookupParam: function (d) {
            return $http.post("/api/adminapi/AddDefaultLookupParam/", d);
        },
        getTPFileType: function () {
            return $http.get("/api/adminapi/GetTPFileType/");
        },

        updatedFileType: function (d) {
            return $http.post("/api/adminapi/UpdateFileType/", d);
        },

        getworkflowconfig: function () {
            return $http.get("/api/adminapi/GetWorkflowConfig/");
        },
        getWorkflowConfigDropdown: function () {
            return $http.get("/api/adminapi/GetWorkflowConfigDropdown/");
        },
        addNewWorkflowConfig: function (d) {
            return $http.post("/api/adminapi/AddNewWorkflowConfig/", d);
        },
        deleteCurrentWorkflowConfig: function (d) {
            return $http.post("/api/adminapi/DeleteCurrentWorkflowConfig/", d);
        },
        inactiveLookupParam: function (d) {
            return $http.post("/api/adminapi/InactivateLookupParam/", d);
        },
        getRefActChannel: function () {
            return $http.get("/api/adminapi/GetAllRefActChannel/");
        },
        updateRefActChannel: function (d) {
            return $http.post("/api/adminapi/UpdateRefActChannel/", d);
        },
        getAllSumber: function () {
            return $http.get("/api/adminapi/GetAllSumber/");
        },
        getAdminDDLOptions: function () {
            return $http.get("/api/adminapi/GetAdminDDLOptions/");
        },
        updateSumberDetails: function (d) {
            return $http.post("/api/adminapi/UpdateSumberDetails/", d);
        },
        removeCurrentSumberDetail: function (d) {
            return $http.post("/api/adminapi/RemoveCurrentSumberDetail/", d);
        },
        getAllJenisKempen: function (d) {
            return $http.post("/api/adminapi/GetAllJenisKempen/", d);
        },
        updateJenisKempen: function (d) {
            return $http.post("/api/adminapi/UpdateJenisKempen/", d);
        },
        removeCurrentKempenDetail: function (d) {
            return $http.post("/api/adminapi/RemoveCurrentKempenDetail/", d);
        },
        getAllKategori: function () {
            return $http.get("/api/adminapi/GetAllKategori/");
        },
        updateKategoriLevel: function (d) {
            return $http.post("/api/adminapi/UpdateKategoriLevel/", d);
        },
        deleteKategoriLevel: function (d) {
            return $http.post("/api/adminapi/DeleteKategoriLevel/", d);
        },
        removeCurrentSubKategoryDetail: function (d) {
            return $http.post("/api/adminapi/RemoveCurrentSubKategoryDetail/", d);
        },
        getAllKodSelesai: function () {
            return $http.get("/api/adminapi/GetAllAdminKodSelesai/");
        },
        updateKodSelesai: function (d) {
            return $http.post("/api/adminapi/UpdateKodSelesai/", d);
        },
        removeCurrentAdminKodSelesai: function (d) {
            return $http.post("/api/adminapi/RemoveCurrentAdminKodSelesai/", d);
        },
        getAllStatusLevel: function (d) {
            return $http.get("/api/adminapi/GetAllStatusLevel/");
        },
        getAllCCTemplateName: function (IsEmailCCTemplate) {
            //return $http.get("/api/adminapi/GetAllCCTemplateName/");
            return $http({
                url: '/api/adminapi/GetAllCCTemplateName/',
                method: "GET",
                params: {
                    IsEmailCCTemplate: IsEmailCCTemplate,
                }
            });
        },
        updateCCTemplateName: function (d) {
            return $http.post("/api/adminapi/UpdateCCTemplateName/", d);
        },
        removeCurrentAdminCCTemplateName: function (d) {
            return $http.post("/api/adminapi/RemoveCurrentAdminCCTemplateName/", d);
        },
        getSenaraiPenerimaanDoc: function () {
            return $http.get("/api/adminapi/GetSenaraiPenerimaanDoc/");
        },
        updatedDocumentName: function (d) {
            return $http.post("/api/adminapi/UpdatedDocumentName/", d);
        },
        removeCurrentAdminKategoriDocument: function (d) {
            return $http.post("/api/adminapi/RemoveAdminKategoriDocument/", d);
        },
        updatedStatusLevel: function (d) {
            return $http.post("/api/adminapi/UpdatedStatusLevel/", d);
        },
        removeAdminStatusLevel: function (d) {
            return $http.post("/api/adminapi/RemoveAdminStatusLevel/", d);
        },
        getAllCFFKategori: function () {
            return $http.get("/api/adminapi/GetAllCFFKategori/");
        },
        getAllUnitType: function () {
            return $http.get("/api/adminapi/GetAllUnitType/");
        },
        updateUnitType: function (d) {
            return $http.post("/api/adminapi/UpdateUnitType/", d);
        },
        deleteUnitType: function (d) {
            return $http.post("/api/adminapi/DeleteUnitType/", d);
        },
        getAllParameterSetting: function () {
            return $http.get("/api/adminapi/GetAllParameterSetting/");
        },
        updateParameterSetting: function (d) {
            return $http.post("/api/adminapi/UpdateParameterSetting/", d);
        },
        updateCFFKategori: function (d) {
            return $http.post("/api/adminapi/UpdateCFFKategori/", d);
        },
        deleteCFFKategori: function (d) {
            return $http.post("/api/adminapi/DeleteCFFKategori/", d);
        },
        searchUnitByName: function (name) {
            return $http({
                url: '/api/adminapi/SearchUnitByName/',
                method: "GET",
                params: {
                    strName: name
                }
            });
        },
        getAllTindakanSusulan: function () {
            return $http.get("/api/adminapi/GetAllTindakanSusulan/");
        },
        updateTindakanSusulan: function (d) {
            return $http.post("/api/adminapi/UpdateTindakanSusulan/", d);
        },
        getAllEmailTemplate: function () {
            return $http.get("/api/adminapi/GetAllEmailTemplate/");
        },
        updateTemplate: function (d) {
            return $http.post("/api/adminapi/UpdateTemplate/", d);
        },
        getAdminEmailTemplateBookmarkDDLOptions: function (templateID) {
            return $http({
                url: '/api/adminapi/GetAdminEmailTemplateBookmarkDDLOptions/',
                method: "GET",
                params: {
                    intTemplateID: templateID
                }
            });
        },
        getSearchViewDetailList: function (d) {
            return $http.get("/api/adminapi/GetSearchViewDetailList/" + d);
        },
        updateAdvRulesView: function (d) {
            return $http.post("/api/adminapi/UpdateAdvRulesView", d);
        },
        getViewPermissionDropdown: function () {
            return $http.get("/api/adminapi/GetViewPermissionDropdown/");
        },
        getDashboardListing: function (d) {
            return $http.post("/api/adminapi/GetDashboardListing", d);
        },
        getDashboardDetails: function (dashboardID) {
            return $http({
                url: '/api/adminapi/GetDashboardDetails/',
                method: "GET",
                params: {
                    intDashboardID: dashboardID
                }
            });
        },
        getDashboardZonList: function (dashboardID) {
            return $http({
                url: '/api/adminapi/GetDashboardZonList/',
                method: "GET",
                params: {
                    intDashboardID: dashboardID
                }
            });
        },
        updateDashboard: function (d) {
            return $http.post("/api/adminapi/UpdateDashboard", d);
        },
        deleteDashboard: function (d) {
            return $http.post("/api/adminapi/DeleteDashboard", d);
        },
        getDashboardSavedView: function () {
            return $http.get("/api/adminapi/GetDashboardSavedView/");
        },
        getChartAction: function () {
            return $http.get("/api/adminapi/GetChartAction/");
        },
        searchDuplicateDashboardName: function (d) {
            return $http.post("/api/adminapi/SearchDuplicateDashboardName/", d);
        },
        searchUnitForAdvancedRules: function (name) {
            return $http({
                url: '/api/adminapi/SearchUnit/',
                method: "GET",
                params: {
                    strName: name
                }
            });
        },
        searchUnitByIDForAdvancedRules: function (unitID) {
            return $http({
                url: '/api/adminapi/SearchUnitByID/',
                method: "GET",
                params: {
                    intUnitID: unitID
                }
            });
        },
        searchUserForAdvancedRules: function (name) {
            return $http({
                url: '/api/adminapi/SearchUser/',
                method: "GET",
                params: {
                    strName: name
                }
            });
        },
        searchUserByIDForAdvancedRules: function (userID) {
            return $http({
                url: '/api/adminapi/SearchUserByID/',
                method: "GET",
                params: {
                    intUserProfileID: userID
                }
            });
        },

        deleteEmailTemplate: function (d)
        {
            return $http.post("/api/adminapi/DeleteEmailTemplate", d);
        }
    }
});

crmApp.factory('QRCodeSI', function ($http) {
    return {
        genQRcode: function (d) {
            return $http.post("/api/QRcodeapi/GenQRCode/", d);
        }
    }
});

crmApp.factory('TaskSI', function ($http) {
    return {
        getCaseOrActivity: function (d) {
            return $http.post("/api/taskapi/GetCaseOrActivity/", d);
        },
        getDropdown: function (d) {
            return $http.get("/api/taskapi/GetDropdown/");
        },
        getTask: function (d) {
            return $http.get("/api/taskapi/GetTask/" + d);
        },
        updateTask: function (d) {
            return $http.post("/api/taskapi/UpdateTask/", d);
        },
        deleteTask: function (d) {
            return $http.post("/api/taskapi/DeleteTask/", d);
        },
        searchTask: function (d) {
            return $http.post("/api/taskapi/SearchTask/", d);
        },
        getDashboardMyTask: function (d) {
            return $http.post("/api/taskapi/GetDashboardMyTask/", d);
        },
        getDashboardMyTaskSubmission: function (d) {
            return $http.post("/api/taskapi/GetDashboardMyTaskSubmission/", d);
        },
        getRecentActivity: function () {
            return $http.get("/api/taskapi/GetRecentActivity/");
        },
        getLoginInfo: function (d) {
            return $http.post("/api/taskapi/GetLoginInfo/");
        },
        getPagedTaskListByID: function (d) {
            return $http.post("/api/taskapi/GetPagedTaskListByID/", d);
        },
        getTaskForCalendar: function () {
            return $http.get("/api/taskapi/GetTaskForCalendar/");
        },
    }
});

crmApp.factory('GeneralSI', function ($http) {
    return {
        getDashboardTiles: function () {
            return $http.get("/api/generalapi/GetDashboardTiles/");
        },

        getActDashboardWidget: function () {
            return $http.get("/api/generalapi/GetActDashboardWidget/");
        },

        getMyDashboardNotifcation: function (d) {
            return $http.post("/api/generalapi/GetMyDashboardNotifcation/", d);
        },

        updatedCurrentContent: function (d) {
            return $http.post("/api/generalapi/UpdateAlertContent/", d);
        },
        getAdvancedRulesDetails: function (viewID, tableType) {
            return $http({
                url: '/api/generalapi/GetAdvancedRulesDetails/',
                method: "GET",
                params: {
                    intViewID: viewID,
                    intTableType: tableType
                }
            });
        },
        getDisplaySetting: function (tableType, viewID, jenisKempenID) {
            return $http({
                url: '/api/generalapi/GetDisplaySetting/',
                method: "GET",
                params: {
                    intTableType: tableType,
                    intViewID: viewID,
                    intJenisKempenID: jenisKempenID
                }
            });
        },
        getDashboardDisplaySetting: function (tableType, viewID) {
            return $http({
                url: '/api/generalapi/GetDashboardDisplaySetting/',
                method: "GET",
                params: {
                    intTableType: tableType,
                    intViewID: viewID
                }
            });
        },
        getDashboardDynamicCol: function (d) {
            return $http.post("/api/generalapi/GetDashboardDynamicCol", d);
        },
        getDashboardTableResults: function (d) {
            return $http.post("/api/generalapi/GetDashboardTableResults", d);
        },
        getDashboardChartResults: function (d) {
            return $http.post("/api/generalapi/GetDashboardChartResults", d);
        },
        deleteViewConfig : function(viewID,tableType)
        {
            return $http({
                url: '/api/generalapi/DeleteViewConfig/',
                method: "POST",
                params: {
                    intViewID: viewID,
                    intTableType: tableType
                  
                }
            });
        }
    }
});

crmApp.factory('OutboundSI', function ($http) {
    return {
        getDropdown: function (d) {
            return $http.post("/api/outboundapi/GetDropdown/", d);
        },
        getOutboundViewColumns: function (d) {
            return $http.post("/api/outboundapi/GetOutboundViewColumns/", d);
        },
        getPagedSearchOutbound: function (d) {
            return $http.post("/api/outboundapi/GetPagedSearchOutbound", d);
        },
        getOutboundSegmentise: function (d) {
            return $http.get("/api/outboundapi/GetOutboundSegmentise/" + d);
        },
        updateOutboundSegmentise: function (d) {
            return $http.post("/api/outboundapi/UpdateOutboundSegmentise/", d);
        },
        getOutboundDetails: function (d) {
            return $http.post("/api/outboundapi/GetOutboundDetails/", d);
        },
        getOutboundManualAssignData: function (d) {
            return $http.post("/api/outboundapi/GetOutboundManualAssigned", d);
        },
        updatedOCLAgentAssign: function (d) {
            return $http.post("/api/outboundapi/UpdatedOCLAgentAssign", d);
        },
        getSearchUser: function (d) {
            return $http.post("/api/outboundapi/GetSearchUser/", d);
        },
        updatedOCLMangerAssign: function (d) {
            return $http.post("/api/outboundapi/UpdatedOCLMangerAssign/", d);
        },
        getMyPendingOutboundInDashboard: function (d) {
            return $http.post("/api/outboundapi/GetMyPendingOutboundInDashboard/", d);
        },
        updateOutboundDetailsTunggakan: function (d) {
            return $http.post("/api/outboundapi/UpdateOutboundDetailsTunggakan/", d);
        },
        updateOutboundDetailsAnsuran: function (d) {
            return $http.post("/api/outboundapi/UpdateOutboundDetailsAnsuran/", d);
        },
        updateOutboundDetailsCTL: function (d) {
            return $http.post("/api/outboundapi/UpdateOutboundDetailsCTL/", d);
        },
        getAllSegmentiseList: function (d) {
            return $http.post("/api/outboundapi/GetAllSegmentiseList/", d);
        },
        getAllReMSBatchList: function (d) {
            return $http.post("/api/outboundapi/GetAllReMSBatchList/", d);
        },
        getReMSDataByBatchID: function (d) {
            return $http.post("/api/outboundapi/GetReMSDataByBatchID/", d);
        },
        getInvalidReMSDataByBatchID: function (d) {
            return $http.post("/api/outboundapi/GetInvalidReMSDataByBatchID/", d);
        },
        getReMSBatchDetailsByBatchID: function (d) {
            return $http.post("/api/outboundapi/GetReMSBatchDetailsByBatchID/", d);
        },
        returnReMSBatch: function (d) {
            return $http.post("/api/outboundapi/ReturnReMSBatch/", d);
        },

        deleteSegmentise: function (d) {
            return $http.post("/api/outboundapi/DeleteSegmentise/", d);
        },

        deleteCampaign: function (d) {
            return $http.post("/api/outboundapi/DeleteCampaign/", d);
        },

        getPagedAllOutboundSchedule: function (d) {
            return $http.post("/api/outboundapi/GetPagedAllOutboundSchedule/", d);

        },
        getOutboundScheduleByID: function (d) {
            return $http.get("/api/outboundapi/GetOutboundScheduleByID/" + d);
        },
        updateOutboundSchedule: function (d) {
            return $http.post("/api/outboundapi/UpdateOutboundSchedule/", d);
        },
        deleteSchedule: function (d) {
            return $http.post("/api/outboundapi/DeleteSchedule/", d);
        },
        getPagedOutboundHistoryListByID: function (d) {
            return $http.post("/api/outboundapi/GetPagedOutboundHistoryListByID/", d);

        },
        getPagedOutboundHistoryDetailListByID: function (d) {
            return $http.post("/api/outboundapi/GetPagedOutboundHistoryDetailListByID/", d);

        },
        getOutboundHistoryByID: function (d) {
            return $http.get("/api/outboundapi/GetOutboundHistoryByID/" + d);
        },
        getAllEmailBlastSegmentiseList: function (d) {
            return $http.post("/api/outboundapi/GetAllEmailBlastSegmentiseList/", d);
        },
        getAllEmailBlastBatchList: function (d) {
            return $http.post("/api/outboundapi/GetAllEmailBlastBatchList/", d);
        },
        uploadAttachment: function (file) {
            return {
                url: "/api/outboundapi/UploadAttachment/",
                data: { file: file }
            };
        },
        writeFileToFolder: function (d) {
            return $http.post("/api/outboundapi/WriteAttachmentToFolder/", d);
        },
        getPagedSearchEmailBlast: function (d) {
            return $http.post("/api/outboundapi/GetPagedSearchEmailBlast", d);
        },
        getEmailBlastBatchDetailsByBatchID: function (d) {
            return $http.post("/api/outboundapi/GetEmailBlastBatchDetailsByBatchID/", d);
        },
        getInvalidEmailBlastDataByBatchID: function (d) {
            return $http.post("/api/outboundapi/GetInvalidEmailBlastDataByBatchID/", d);
        },
        getEmailBlastDataByBatchID: function (d) {
            return $http.post("/api/outboundapi/GetEmailBlastDataByBatchID/", d);
        },
        getEmailBlastSegmentise: function (d) {
            return $http.get("/api/outboundapi/GetEmailBlastSegmentise/" + d);
        },
        getPagedAllEmailBlastSchedule: function (d) {
            return $http.post("/api/outboundapi/GetPagedAllEmailBlastSchedule/", d);
        },
        getEmailBlastScheduleByID: function (d) {
            return $http.get("/api/outboundapi/GetEmailBlastScheduleByID/" + d);
        },
        lockSegmentiseData: function (d) {
            return $http.post("/api/outboundapi/LockSegmentiseData/", d);
        },
        releaseSegmentiseData: function (d) {
            return $http.post("/api/outboundapi/ReleaseSegmentiseData/", d);
        },
        deleteEmailBlastSegmentise: function (d) {
            return $http.post("/api/outboundapi/DeleteEmailBlastSegmentise/", d);
        },
        deleteEmailBlastCampaign: function (d) {
            return $http.post("/api/outboundapi/DeleteEmailBlastCampaign/", d);
        },
        deleteEmailBlastSchedule: function (d) {
            return $http.post("/api/outboundapi/DeleteEmailBlastSchedule/", d);
        },
        verifyDataByList: function (d) {
            return $http.post("/api/outboundapi/VerifyDataByList/", d);
        },

        getEmailBlastDetails: function (d) {
            return $http.post("/api/outboundapi/GetEmailBlastDetails/", d);
        },
        updateEmailBlastDetailsHCL: function (d) {
            return $http.post("/api/outboundapi/UpdateEmailBlastDetailsHCL/", d);
        },
        verifyEmailBlastData: function (d) {
            return $http.post("/api/outboundapi/VerifyEmailBlastData/", d);
        },
        rejectEmailBlastData: function (d) {
            return $http.post("/api/outboundapi/RejectEmailBlastData/", d);
        },
        rejectEmailBlastBatch: function (d) {
            return $http.post("/api/outboundapi/RejectEmailBlastBatch/", d);
        },
        getPagedEmailBlastHistoryListByID: function (d) {
            return $http.post("/api/outboundapi/GetPagedEmailBlastHistoryListByID/", d);
        },
        getPagedEmailBlastHistoryDetailListByID: function (d) {
            return $http.post("/api/outboundapi/GetPagedEmailBlastHistoryDetailListByID/", d);

        },
        getEmailBlastHistoryByID: function (d) {
            return $http.get("/api/outboundapi/GetEmailBlastHistoryByID/" + d);
        },
        verifyOutboundDataByBatch: function (d) {
            return $http.post("/api/outboundapi/VerifyOutboundDataByBatch/", d);

        },
        verifyEmailBlastDataByBatch: function (d) {
            return $http.post("/api/outboundapi/VerifyEmailBlastDataByBatch/", d);

        },
        sendTestingEmail: function (d) {
            return $http.post("/api/outboundapi/SendTestingEmail/", d);
        },
        rejectOutboundData: function (d) {
            return $http.post("/api/outboundapi/RejectOutboundData/", d);
        },
        verifyOutboundData: function (d) {
            return $http.post("/api/outboundapi/VerifyOutboundData/", d);
        },
        cancelCampaignByID: function (d) {
            return $http.post("/api/outboundapi/CancelCampaignByID/", d);
        }
    }
});

crmApp.factory('UserSI', function ($http) {
    return {
        getUserRoleListing: function (d) {
            return $http.get("/api/userapi/GetUserRoleListing/", d);
        },
        getUserRoleMatrix: function (d) {
            return $http.post("/api/userapi/GetUserRoleMatrix/", d);
        },
        getUserRoleDetails: function (functionalRoleID) {
            return $http({
                url: '/api/userapi/GetUserRoleDetails/',
                method: "GET",
                params: {
                    intFunctionalRoleId: functionalRoleID
                }
            });
        },
        saveRoleDetails: function (d) {
            return $http.post("/api/userapi/SaveRoleDetails/", d);
        },
        findDuplicateRoleName: function (d) {
            return $http.post("/api/userapi/FindDuplicateRoleName/", d);
        },
        searchUsersByKeyword: function (d) {
            return $http.post("/api/userapi/SearchUsersByKeyword/", d);
        },
        getUserGroupHierarcyOptions: function (d) {
            return $http.get("/api/userapi/GetUserGroupHierarcyOptions/", d);
        },
        searchUserByUnitID: function (d) {
            return $http.get("/api/userapi/SearchUserByUnitID/" + d);
        },
        searchUserByUnitID: function (unitID) {
            return $http({
                url: '/api/userapi/SearchUserByUnitID/',
                method: "GET",
                params: {
                    iUnitID: unitID
                }
            });
        },
        getDefaultManager: function (d) {
            return $http.get("/api/userapi/GetDefaultManager/", d);
        },
        searchUserByName: function (name) {
            return $http({
                url: '/api/userapi/SearchUserByName/',
                method: "GET",
                params: {
                    strName: name
                }
            });
        },
        searchUnitByName: function (name) {
            return $http({
                url: '/api/userapi/SearchUnitByName/',
                method: "GET",
                params: {
                    strName: name
                }
            });
        },
        getAdminUserProfileList: function (d) {
            return $http.post("/api/userapi/getAdminUserProfileList/", d);
        },
        getUserProfileDetailByID: function (userProfileID) {
            return $http({
                url: '/api/userapi/GetUserProfileDetailByID/',
                method: "GET",
                params: {
                    intUserProfileId: userProfileID
                }
            });
        },
        updateUserProfileDetail: function (d) {
            return $http.post("/api/userapi/UpdateUserProfileDetail/", d);
        },
        searchRoleByName: function (name) {
            return $http({
                url: '/api/userapi/SearchRoleByName/',
                method: "GET",
                params: {
                    strName: name
                }
            });
        },
        searchUnitTypeByName: function (name) {
            return $http({
                url: '/api/userapi/SearchUnitTypeByName/',
                method: "GET",
                params: {
                    strName: name
                }
            });
        },
        getUserRequestProfileDetailByID: function (WFuserProfileID) {
            return $http({
                url: '/api/userapi/GetUserRequestProfileDetailByID/',
                method: "GET",
                params: {
                    intWFUserProfileId: WFuserProfileID
                }
            });
        },

        updateWFUserProfileDetail: function (d) {
            return $http.post("/api/userapi/UpdateWFUserProfileDetail/", d);
        },
        getWorkflowUserProfileList: function (d) {
            return $http.post("/api/userapi/GetWorkflowUserProfileList/", d);
        },
        checkDuplicateLogin: function (userloginID) {
            return $http({
                url: '/api/userapi/CheckDuplicateLogin/',
                method: "GET",
                params: {
                    sUserLoginID: userloginID
                }
            });
        },
        checkWFUserDuplicateLogin: function (userloginID) {
            return $http({
                url: '/api/userapi/CheckWFUserDuplicateLogin/',
                method: "GET",
                params: {
                    sUserLoginID: userloginID
                }
            });
        },              
        getUserFromAD: function (email) {
            return $http({
                url: '/api/userapi/GetUserFromAD/',
                method: "GET",
                params: {
                    strEmail: email
                }
            });
        },
        getDashboardMyPendingUserRequest : function(d)
        {
            return $http.post("/api/userapi/GetDashboardMyPendingUserRequest/", d);
        },

        getDashboardMyCreatedUserRequest : function(d)
        {
            return $http.post("/api/userapi/GetDashboardMyCreatedUserRequest/", d);
        },

        cancelRequestWFUserProfile: function (d)
        {
            return $http.post("/api/userapi/CancelRequestWFUserProfile/", d);
        },

        searchUserRequestUnitByName: function (name,wfUserprofileID) {
        return $http({
            url: '/api/userapi/SearchUserRequestUnitByName/',
            method: "GET",
            params: {
                strName: name,
                lgWFUserProfileID :wfUserprofileID
            }
        });
    },
    }
});

//crmApp.factory('ReportSI', function ($http) {
//    return {
//        getReportDetail : function(d)
//        {
//            return $http.post("/api/reportapi/ViewReport/",d);
//        }
//    }

//});
