CINXE.COM

CCSF

<!DOCTYPE html> <html lang="en"> <head runat="server"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta charset="utf-8"> <script src="/config/InFlight.NLX.Customer.config.js?rev=3bc7a86cde"></script> <meta name="google-site-verification" content="h79ijDsYoMKM_C0YPqjnLz4ijsgBZvtGAsHdu7bkOSo" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>CCSF</title> <meta name="description" content="CCSF."> <meta name="keywords" content="information, system, finance, department"> <meta name="author" content="CCSF"> <meta name="web_author" content="InFlight Corporation"> <!-- Bootstrap --> <link href="/assets/css/vendor.min.css?rev=1422db4872" rel="stylesheet"> <link href="/assets/css/app.min.css?rev=142aba86be" rel="stylesheet"> <link href='https://fonts.googleapis.com/css?family=Lato:300,400,700' rel='stylesheet' type='text/css'> <link rel="apple-touch-icon" sizes="57x57" href="/assets/images/apple-touch-icon-57x57.png"> <link rel="apple-touch-icon" sizes="60x60" href="/assets/images/apple-touch-icon-60x60.png"> <link rel="apple-touch-icon" sizes="72x72" href="/assets/images/apple-touch-icon-72x72.png"> <link rel="apple-touch-icon" sizes="76x76" href="/assets/images/apple-touch-icon-76x76.png"> <link rel="apple-touch-icon" sizes="114x114" href="/assets/images/apple-touch-icon-114x114.png"> <link rel="apple-touch-icon" sizes="120x120" href="/assets/images/apple-touch-icon-120x120.png"> <link rel="apple-touch-icon" sizes="144x144" href="/assets/images/apple-touch-icon-144x144.png"> <link rel="apple-touch-icon" sizes="152x152" href="/assets/images/apple-touch-icon-152x152.png"> <link rel="apple-touch-icon" sizes="180x180" href="/assets/images/apple-touch-icon-180x180.png"> <link rel="icon" type="image/png" href="/assets/images/favicon-32x32.png" sizes="32x32"> <link rel="icon" type="image/png" href="/assets/images/favicon-194x194.png" sizes="194x194"> <link rel="icon" type="image/png" href="/assets/images/favicon-96x96.png" sizes="96x96"> <link rel="icon" type="image/png" href="/assets/images/android-chrome-192x192.png" sizes="192x192"> <link rel="icon" type="image/png" href="/assets/images/favicon-16x16.png" sizes="16x16"> <link rel="manifest" href="/assets/manifest.json"> <link rel="mask-icon" href="/images/safari-pinned-tab.svg" color="#5bbad5"> <meta name="apple-mobile-web-app-title" content="SF City Partner"> <meta name="application-name" content="SF City Partner"> <meta name="msapplication-TileColor" content="#da532c"> <meta name="msapplication-TileImage" content="/images/mstile-144x144.png"> <meta name="theme-color" content="#ffffff"> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5S35VNH');</script> <!-- End Google Tag Manager --> <!-- Upscope Cobrowsing --> <script> (function(w, u, d){var i=function(){i.c(arguments)};i.q=[];i.c=function(args){i.q.push(args)};var l = function(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://code.upscope.io/2Ragupn8y8.js';var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);};if(typeof u!=="function"){w.Upscope=i;l();}})(window, window.Upscope, document); Upscope('init', { autoconnect: false }); </script> <!-- End Upscope Cobrowsing --> <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> <![endif]--> <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script src="/assets/js/vendor.min.js?rev=3b9b128fc5"></script> <style> .if-hide { display: none !important; } .if-hide-v { visibility: hidden !important; } .psaccesshidden { display: none !important; } .form-horizontal .has-feedback .form-control-feedback { top: 10px; } .fv-form-bootstrap .fv-icon-no-label { top: 10px; right: 15px; } .bs-callout { padding: 20px; margin: 20px 0; border: 1px solid #a94442; border-left-width: 5px; border-radius: 3px; } .bs-callout h4 { margin-top: 0; margin-bottom: 5px; } .bs-callout p:last-child { margin-bottom: 0; } .bs-callout code { border-radius: 3px; } .bs-callout + .bs-callout { margin-top: -5px; } .bs-callout-default { border-left-color: #777; } .bs-callout-default h4 { color: #777; } .bs-callout-primary { border-left-color: #428bca; } .bs-callout-primary h4 { color: #428bca; } .bs-callout-success { border-left-color: #5cb85c; } .bs-callout-success h4 { color: #5cb85c; } .bs-callout-danger { border-left-color: #a94442; } .bs-callout-danger h4 { color: #d9534f; } .bs-callout-warning { border-left-color: #f0ad4e; } .bs-callout-warning h4 { color: #f0ad4e; } .bs-callout-info { border-left-color: #5bc0de; } .bs-callout-info h4 { color: #5bc0de; } .btn-danger { position: relative; } </style> </head> <body id="home"> <!-- Powered by InFlight NLX. http://www.inflightintegration.com Copyright (c) 2013-2017 InFlight Corporation. All Rights Reserved --> <div id="global_headerx"> <header> <div class="alert alert-warning alert-dismissible mb-0" id="sessionExpiredHeader" role="alert" style="border-radius:0; display: none;"> <div class="container"> <button type="button" id="sessionExpiredHeaderDismissBtn" class="close" aria-label="Close"> <i class="fa fa-times fa-lg"></i> </button> <span id="sessionExpiredHeaderMsg" class="bold" data-i18n="header_time_out_msg"></span> </div> </div> <div class="alert alert-warning alert-dismissible mb-0" id="maintenanceHeader" role="alert" style="border-radius:0; display: none;"> <div class="container"> <button type="button" id="maintenanceHeaderDismissBtn" data-dismiss class="close" aria-label="Close"> <i class="fa fa-times fa-lg"></i> </button> <span id="customAlertHeaderMsg" class="bold"></span> </div> </div> <div class="alert alert-warning mb-0" id="ieAlert" role="alert" style="border-radius:0; display: none"> <div class="container"> <span class="bold" data-i18n="ie_warning"></span> <a class="btn btn-primary btn-sm" href="/pages/upgrade_browser.html" data-i18n="ie_upgrade_now"></a> </div> </div> <nav class="navbar"> <div class="container"> <div class="grid-logo"> <div class="logo"> <h1 class="m-0 p-0"> <a href="/pages/index.aspx"> <img src="/assets/images/logos/logo.svg" alt="San Francisco City Partner" class="img-responsive" /> </a> </h1> </div> </div> <div class="grid-nav"> <button id="btn-nav-user" type="button" class="navbar-toggle user collapsed" data-toggle="collapse" data-target="#user-nav" aria-expanded="false"> <span class="sr-only">Toggle User Menu</span> <i class="user-icon ifc-icon ifc-circle-10 2x x2"></i> </button> <button id="btn-nav-main" type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#main-nav" aria-expanded="false"> <div class="center-icon"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </div> </button> <div class="collapse navbar-collapse pull-left" id="main-nav"> <ul class="nav navbar-nav"> <li id="navopportunities"><a href="/pages/Events-BS3/event-search.aspx" data-i18n="header_opportunities"></a></li> <li id="navpartners"><a href="/pages/Events-BS3/partner-request/view-all-requests.aspx" data-i18n="header_partners"></a></li> <li id="navNewFeatures"> <a href="/pages/LBESearch/supplier-search.aspx"> <span data-i18n="header_lbe_directory"></span> </a> </li> <li id="navhelp" class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><span data-i18n="_help"></span> <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="/pages/contact.aspx" data-i18n="header_contact"></a></li> <li id="navfaq"><a href="/pages/faq.aspx" data-i18n="header_faq"></a></li> <li><a href="/pages/training.aspx" data-i18n="header_training"></a></li> <li><a href="/pages/become-a-supplier.aspx" data-i18n="header_become_a_supplier"></a></li> <li><a href="/pages/new-features.aspx" data-i18n="header_whats_new"></a></li> </ul> </li> </ul> </div> <div class="collapse navbar-collapse sign-in" id="user-nav"> <ul id="login_tpl" style="display:none;" class="nav navbar-nav navbar-right"> <li id="navlogin"> <a href="/pages/BS3/login.aspx" id="sign-in-link"> <i class="sign-in ifc-icon ifc-circle-10"></i> <span data-i18n="header_sign_in"></span> </a> </li> </ul> <ul id="logout_tpl" style="display:none;" class="nav navbar-nav navbar-right"> <li class="dropdown"> <a href="#" id="user-block" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> <div> <span id="user-name">[username]</span> <span class="caret"></span> </div> <div id="user-roles" class="hidden"> <div id="status-pill" class="pill"> <span data-i18n="header_bidder"></span> </div> </div> </a> <ul class="dropdown-menu"> <li><a href="/pages/index.aspx" data-i18n="header_my_workcenter"></a></li> <li id="changePasswordHeaderItem" style="display:none"><a href="javascript:void(0)" target="_blank" data-i18n="header_account_change_password"></a></li> <li><a href="javascript:InFlight.User.doLogout()" data-i18n="header_sign_out"></a></li> </ul> </li> </ul> </div> </div> </div> </nav> </header> <script type="text/javascript"> $(function () { InFlight.i18n.localize(); var isError = commonCleanup(); $("#maintenanceHeaderDismissBtn").on("click", function () { sessionStorage.hasDismissedMaintenanceHeader = "true"; $("#maintenanceHeader").hide(); }); $("#sessionExpiredHeaderDismissBtn").on("click", function () { $("#sessionExpiredHeader").hide(); }); var $userNav = $('#user-nav'); var $mainNav = $('#main-nav'); var $gridLogo = $('.grid-logo'); $('#changePasswordHeaderItem a').attr("href", InFlight.NLX.Cfg.Customer.getChangePasswordLink()); $('#btn-nav-main').off().on('click', function () { setupMenus($mainNav, $userNav); }); $('#btn-nav-user').off().on('click', function (e) { if (InFlight.User.isLoggedIn()) { setupMenus($userNav, $mainNav); } else { window.location.href = $('#sign-in-link').attr("href"); e.stopPropagation(); } }); setTimeout(function () { var $nav = $('#navlogin'); if(window.location.href.indexOf('/login.aspx') > 0) { $nav.addClass('hidden'); } else { $nav.removeClass('hidden'); } }, 150); function setupMenus($selfNav, $otherNav) { $otherNav.collapse('hide'); setTimeout(function () { $selfNav.find('li.dropdown').addClass('open'); var count = $('nav .navbar-toggle:not(.collapsed)').length; if (count) { $gridLogo.addClass('menu-open'); } else { $gridLogo.removeClass('menu-open'); } }, 150); } function getInternetExplorerVersion() { var rv = -1; // Return value assumes failure. if (navigator.appName == 'Microsoft Internet Explorer') { var ua = navigator.userAgent; var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); if (re.exec(ua) != null) rv = parseFloat(RegExp.$1); } else if (navigator.appName == 'Netscape') { var ua = navigator.userAgent; var re = new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})"); if (re.exec(ua) != null) rv = parseFloat(RegExp.$1); } return rv; } var ver = getInternetExplorerVersion(); if (ver === 11 || ver === 10 || ver === 9 || ver === 8 || ver === 7 || ver === 6 || ver === 5) { $('#ieAlert').show(); } if (sessionStorage.hasDismissedMaintenanceHeader !== "true") { InFlight.CMS.getSiteBanner().then(function (resp) { if (!(resp && resp.length && resp[0].content)) { return; } const $maintenanceHeader = $("#maintenanceHeader"); var newStyle = $maintenanceHeader.attr("style").replace("display: none;", ""); $maintenanceHeader.attr("style", newStyle); var $customAlertHeaderMsg = $('#customAlertHeaderMsg'); $customAlertHeaderMsg.html($(resp[0].content).unwrap().html()); if ($customAlertHeaderMsg.text().toLowerCase().indexOf('covid-19') !== -1) { $maintenanceHeader.addClass('covid-alert'); } }); } }); if (localStorage.loggedOutSessionExpired === "true") { localStorage.removeItem('loggedOutSessionExpired'); var newStyle = $("#sessionExpiredHeader").attr("style").replace("display: none;", ""); $("#sessionExpiredHeader").attr("style", newStyle); } window.addEventListener("hashchange", function (event) { var element = document.getElementById(location.hash.substring(1)); if (element) { if (!/^(?:a|select|input|button|textarea)$/i.test(element.tagName)) { element.tabIndex = -1; } element.focus(); } }, false); </script> </div> <!-- Page loader --> <div id="loadingContainer" style="display: none"> <div class="overlay"> </div> <div id="loading"> <div class="spinner"> <div class="center"> <i class="fa fa-spinner fa-spin fa-5x "></i> <br> <h3 id="nlxLoadingMsg">Loading...</h3> </div> </div> </div> </div> <!-- this is a button for downloading attachments --> <div data-if-context-wrapper="UNIVERSAL"> <div class="modal fade" id="attachmentWrapperModal" tabindex="-1" role="dialog" aria-labelledby="downloadModalAriaLabel" aria-zhidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-body"> <div class="if-hide px-15" data-if-label="attachmentWrapper" data-if-source="div.InFlightAttachment:first" data-if-content="null" data-if-hide-when-absent="."> <div class="row " id="attchmentMessage"> <span> Your file is ready. </span> </div> <div class="row" id="attachmentBox"> <div class="pull-right"> <a id="downloadButton" target="_blank" href="#" onclick="clearAttachmentWrapper();" class="btn btn-primary" data-if-container-label="attachmentWrapper" data-if-label="attachmentLink" data-if-source="." data-if-content="text:href"> Download Attachment </a> <button type="button" class="btn btn-outline-primary" data-dismiss="modal"> Close </button> </div> </div> </div> </div> </div> </div> </div> <span id="downloadModalAriaLabel" style="display:none">Download Attachment Dialog</span> </div> <script type="text/javascript"> function fixSBVDETabs() { var tabLinks = document.querySelectorAll("a[data-if-sbvde-special=yes]"); if (tabLinks != null) { //console.log("found tab links that need fixing..."); for (var i = 0; i < tabLinks.length; i++) { try { var rawJavascript = tabLinks[i].getAttribute("data-if-sbvde-panel-js"); var cutStart = rawJavascript.indexOf(",'")+2; var cutEnd = rawJavascript.indexOf("'", cutStart); var panelName = rawJavascript.substring(cutStart, cutEnd); tabLinks[i].setAttribute("name", panelName); } catch(e) { console.log("Error in fixing SBVDE tab links: " + e); } } } } </script> <!-- form action --> <div class="hidden" id="formAction" data-if-label="formAction" data-if-source="form" data-if-content="action:ifaction" data-if-hide-when-absent="."></div> <!-- Error Modal --> <div data-if-context-wrapper="UNIVERSAL"> <div class="modal fade" id="popupMessageModal" tabindex="-1" role="dialog" aria-labelledby="popupMessageTitle" aria-zhidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title" id="popupMessageTitle">Notice</h4> </div> <div class="modal-body"> <p id="popupMessageContent" data-if-source="span.InFlightPopup" data-if-content="html" data-if-label="popupMessageContent"></p> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal"><i class="fa fa-times"></i>Close</button> </div> </div> </div> </div> </div> <!-- Leaving Site Modal --> <div class="modal fade" id="leaveSiteModal" tabindex="-1" role="dialog" aria-labelledby="popupMessageTitleSite" aria-zhidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"> <span aria-hidden="true">&times;</span> <span class="sr-only">Close</span> </button> <h4 class="modal-title" id="popupMessageTitleSite"><span>Notice - Leaving Site</span></h4> </div> <div class="modal-body"> <p>This link will open in a new browser tab. Please close this tab when finished to return to the San Francisco City Partner website. <br/><br/> Do you want to proceed?</p> <br><small style="display:none" id="leaveSiteModal_location"></small> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal" onclick="clearLeaveSiteModal();">No</button> <button type="button" class="btn btn-primary" data-dismiss="modal" onclick="openNewTab();">Yes</button> </div> </div> </div> </div> <!-- Timeout Warning Modal --> <div class="modal fade" id="timeoutWarningModal" tabindex="-1" role="dialog" aria-labelledby="timeoutWarningTitle" aria-zhidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"> <span aria-hidden="true">&times;</span> <span class="sr-only">Close</span> </button> <h4 class="modal-title" id="timeoutWarningTitle"><span>Timeout Warning</span></h4> </div> <div class="modal-body"> <p>Your session is about to expire. Click OK to extend your session.</p> </div> <div class="modal-footer"> <button type="button" class="btn btn-primary" data-dismiss="modal" onclick="reInitSessionExtension();">OK</button> </div> </div> </div> </div> <div class="nlxContainerMaster"> <div class="nlxContainer"> <div id="hero-image" class="full"> <div class="container"> <h2 id="title" data-i18n="home_title"></h2> <span class="details" data-i18n="[html]home_subtitle"></span> </div> </div> <div id="main" style="display: none;"> <div id="page" class="pl-0 pr-0"> <div class="container"> <form onsubmit="return false;"> <section id="find-opportunity" class="block search-block"> <div class="call-out"> <h2 class="h2 line-height-1 no-wrap">Find an Opportunity</h2> <h3 class="h5 text-muted line-height-1 normal">View and Bid on Events</h3> </div> <div class="details"> <p class="mb-0 pb-0" data-i18n="[html]home_get_started_intro"> </p> </div> <div class="action"> <a href="/pages/Events-BS3/event-search.aspx" id="get-started" class="btn btn-lg btn-primary">Get Started</a> </div> </section> </form> <section id="page-wrap" class="page-padding"> <div id="user-account-info" class="hidden"> <div class="header mb-0 min-height-50"> <div class="row"> <div class="col-sm-6 col-md-5"> <span id="userName" class="h2 line-height-1 pt-0 pb-5">[UserName]</span> <span class="text-gray-300">|</span> <div id="soloCompany" class="d-inline"> <span id="companyName" class="small line-height-1">[Company Name]</span> <span class="text-gray-300">|</span> <small id="userID" class="line-height-1">[########]</small> </div> <div id="multiCompany" class="d-inline hidden"> <select id="multiCompanySelect" class="form-control faint d-inline w-auto"> </select> </div> </div> <div class="col-sm-6 col-md-7 text-right text-xs-left"> <button id="accountInfoBtn" class="btn-link btn color-primary" type="button" data-toggle="collapse" data-target="#collapseAccount" aria-expanded="false" aria-controls="collapseAccount"> <small> <i class="fa fa-exclamation-circle"></i> <span id="accountInfoBtnText">[Click here for account info]</span> </small> </button> </div> </div> </div> <div id="collapseAccount" class="collapse"> <div id="account-bidder" class="bidder hidden"> <div class="row"> <div class="col-md-4"> <h3 class="h3" data-i18n="home_user_status_bidder_why_upgrade_hdr"></h3> <p data-i18n="[html]home_user_status_bidder_why_upgrade"></p> </div> <div class="col-md-8 mt-10"> <h3 class="h3" data-i18n="home_user_status_bidder_upgrade_now_hdr"></h3> <div id="bidderUpgradeNow" class="hidden" data-i18n="[html]home_user_status_bidder_upgrade_now"></div> <div id="statusTaxBidder" class="d-flex alert bidder-alert alert-danger hidden"> <div> <i class="x3 ifc-icon ifc-alert-circle-exc danger pr-10"></i> </div> <div class="d-flex-grow-1"> <h4 class="h4 mt-0 mb-0" data-i18n="home_user_status_tax_registration_process">Tax Registration</h4> <div class="status-msg" data-i18n="[html]home_user_status_tax_bidder"> </div> </div> </div> <div id="status12BBidder" class="d-flex alert bidder-alert"> <div> <i class="x3 ifc-icon ifc-alert-circle-exc danger pr-10"></i> <i class="x3 ifc-icon ifc-check-circle-08-2 success pr-10"></i> </div> <div class="d-flex-grow-1"> <h4 class="h4 mt-0 mb-0" data-i18n="home_user_status_12b_declaration_process">Equal Benefits Declaration Process</h4> <div class="status-msg"></div> </div> </div> <div id="statusDiversity" class="d-flex alert bidder-alert hidden"> <div> <i class="x3 ifc-icon ifc-alert-circle-exc danger pr-10"></i> </div> <div class="d-flex-grow-1"> <h4 class="h4 mt-0 mb-0" data-i18n="home_user_status_diversity">Contract Equity</h4> <div class="status-msg"></div> </div> </div> <div data-i18n="[html]home_user_status_bidder_upgrade_now_step_by_step_directions"> </div> </div> </div> </div> <div id="account-supplier" class="supplier hidden"> <div class="row mt-10"> <div id="unapproved" class="col-md-7 hidden"> <h3 class="h3" data-i18n="home_user_status_unapproved_supplier_hdr"></h3> <div data-i18n="[html]home_user_status_unapproved_supplier"></div> </div> <div id="subcontractor" class="col-md-7 hidden"> <h3 class="h3" data-i18n="home_user_status_subcontractor_hdr"></h3> <div data-i18n="[html]home_user_status_subcontractor"></div> </div> <div id="blocked-account" class="col-md-7 hidden"> <h3 class="h3" data-i18n="home_user_status_blocked_hdr"></h3> <div data-i18n="[html]home_user_status_blocked"></div> </div> <div id="supplier-issues" class="col-md-7 hidden"> <h3 class="h3" data-i18n="home_user_status_supplier_issues_hdr"></h3> <div data-i18n="[html]home_user_status_supplier_issues"></div> </div> <div id="approved-supplier" class="col-md-7 hidden"> <h3 class="h3" data-i18n="home_user_status_approved_supplier_hdr"></h3> <div data-i18n="[html]home_user_status_approved_supplier"></div> </div> <div id="inactive" class="col-md-7 hidden"> <h3 class="h3" data-i18n="home_user_status_inactive_hdr"></h3> <div data-i18n="[html]home_user_status_inactive"></div> </div> <div class="col-md-5" id="taxData"> <div id="statusDiversitySupplier" class="d-flex alert supplier-alert"> <div> <i class="x3 ifc-icon ifc-alert-circle-exc danger pr-10"></i> </div> <div class="d-flex-grow-1"> <h4 class="h4 mt-0 mb-0" data-i18n="home_user_status_diversity">Tax Registration</h4> <div data-i18n="[html]home_user_status_diversity_link"></div> </div> </div> <div id="statusTaxSupplier" class="d-flex alert supplier-alert"> <div> <i class="x3 ifc-icon ifc-alert-circle-exc danger pr-10"></i> <i class="x3 ifc-icon ifc-check-circle-08-2 success pr-10"></i> </div> <div class="d-flex-grow-1"> <h4 class="h4 mt-0 mb-0" data-i18n="home_user_status_tax_registration_process">Tax Registration</h4> <div class="status-msg"></div> </div> </div> <div id="status12BSupplier" class="d-flex alert supplier-alert"> <div> <i class="x3 ifc-icon ifc-alert-circle-exc danger pr-10"></i> <i class="x3 ifc-icon ifc-check-circle-08-2 success pr-10"></i> </div> <div class="d-flex-grow-1"> <h4 class="h4 mt-0 mb-0" data-i18n="home_user_status_12b_declaration_process">Equal Benefits Declaration Process</h4> <div class="status-msg"></div> </div> </div> </div> </div> </div> </div> </div> <div id="inactiveAccountInfo" class="hidden"> <div class="header mb-0 min-height-50"> <div class="row"> <div class="col-xs-12 col-md-12 text-right text-xs-left"> <a href="javascript:void(0)"> <small> <i class="fa fa-exclamation-circle"></i> <span id="accountInfoBtnText" data-i18n="home_inactive_account"></span> </small> </a> </div> </div> </div> </div> <div class="row pt-40"> <div id="inactiveUserContent" class="col-xs-12 pb-40 hidden" data-i18n="home_inactive_content"> </div> <div id="contents" class="col-xs-12 pb-40"> <section id="create-account" class="hidden"> <div class="row mb-5"> <div class="col-xs-4 col-sm-4 col-md-12 "> <img src="/assets/images/ccsf-seal.png" class="img-responsive seal" alt="San Francisco seal" /> </div> <div class="col-sm-8 col-md-12 "> <h3 class="h3 mb-0" data-i18n="home_account_title"></h3> <p data-i18n="home_account_description"></p> <a class="btn btn-primary" href="/pages/BidderRegistration-BS3/bidder-registration-1.aspx" data-i18n="home_account_create"></a> </div> </div> </section> <section id="apps" class="hidden"> <div class="row"> <div class="col-sm-6"> <div class="row apps-group" id="myAccount"> <div class="col-xs-3"> <img src="/assets/images/icons/user.svg" class="img-responsive" alt="illustrated My Account" /> </div> <div class="col-xs-9"> <h3> My Account </h3> <ul class="list-unstyled"> <li data-if-app-name="userprofiles"> <a href="#">User Profiles (Log-On Access)</a> </li> <li data-if-app-name="supplierContacts"> <a href="#">Contacts</a> </li> <li data-if-app-name="supplierAddresses"> <a href="#">Addresses</a> </li> <li data-if-app-name="supplierNotifications"> <a href="#">My Categories & Alerts</a> </li> <li id="requestAccountChange"> <a href="#">Request Account Changes</a> </li> <li data-if-app-name="editAccount"> <a href="#">Edit my Profile</a> </li> <li data-if-app-name="editDiversityData"> <a href="#">Edit the Business Owner's Demographic Information</a> </li> <li data-if-app-name="uploadW9" class="hidden"> <a id="uploadW9" href="#">Upload IRS W-9 form</a> </li> <li> <a id="changePasswordLink" href="javascript:void(0)" target="_blank" data-i18n="header_account_change_password">Change Password/MFA</a> </li> <li> <a href="https://sftreasurer.org/community/sf-lends" target="_blank">SF Lends | Treasurer & Tax Collector</a> </li> <li data-if-app-name="supplierDashboard"> <a href="/pages/ESettlements/ESettlements-supplier-dashboard.aspx">Supplier Dashboard</a> </li> </ul> </div> </div> <div class="row apps-group" id="eSettlements"> <div class="col-xs-3"> <img src="/assets/images/icons/cabinet.svg" class="img-responsive" alt="illustrated My eSettlements" /> </div> <div class="col-xs-9"> <h3> eSettlements </h3> <ul class="list-unstyled"> <li data-if-app-name="onlineInvoicing"> <a href="/pages/ESettlements/ESettlements.aspx">Online Invoicing</a> </li> <li data-if-app-name="cmdPaymentAffidavit"> <a href="#">Payment Affidavit (Prime)</a> </li> <li data-if-app-name="paymentAffidavit"> <a href="#">Payment Affidavit (Sub)</a> </li> <li data-if-app-name="cmdParticipationReport"> <a href="#">CMD Participation Report</a> </li> </ul> </div> </div> <div class="row apps-group" id="additionalInformation"> <div class="col-xs-3"> <img src="/assets/images/icons/options.svg" class="img-responsive" alt="illustrated Additional Information" /> </div> <div class="col-xs-9"> <h3> Additional Information </h3> <ul class="list-unstyled"> <li data-if-app-name="viewTermsAndConditions"> <a href="#">View Terms & Conditions</a> </li> </ul> </div> </div> </div> <div class="col-sm-6"> <div class="row apps-group" id="myOpportunities"> <div class="col-xs-3"> <img src="/assets/images/icons/checklist.svg" class="img-responsive" alt="illustrated My Opportunities" /> </div> <div class="col-xs-9"> <h3> My Activity </h3> <ul class="list-unstyled"> <li data-if-app-name="viewOpportunities"> <a href="#"> <a href="#">View Opportunities</a> </li> <li data-if-app-name="viewSourcingActivity"> <a href="#">View My Activity</a> </li> </ul> </div> </div> <div class="row apps-group" id="certifications"> <div class="col-xs-3"> <img src="/assets/images/icons/diploma.svg" class="img-responsive" alt="illustrated Certifications" /> </div> <div class="col-xs-9"> <h3> Certifications </h3> <ul class="list-unstyled"> <li data-if-app-name="12bDeclaration"> <a href="#">Equal Benefits Declaration</a> </li> <li data-if-app-name="14bCertificationApplication"> <a href="#">14B LBE Certification</a> </li> </ul> </div> </div> <div class="row apps-group" id="myOrders"> <div class="col-xs-3"> <img src="/assets/images/icons/invoice.svg" class="img-responsive" alt="illustrated My Orders Invoices Payments" /> </div> <div class="col-xs-9"> <h3> My Orders / Invoices / Payments </h3> <ul class="list-unstyled"> <li data-if-app-name="viewPurchaseOrders"> <a href="#">View Purchase Orders</a> </li> <li data-if-app-name="viewPurchaseOrderSummary"> <a href="#">View Purchase Order Summary</a> </li> <li data-if-app-name="invoices"> <a href="/pages/MyPayments/ViewInvoices.aspx">View Invoices</a> </li> <li data-if-app-name="viewReceipts"> <a href="#">View Receipts</a> </li> <li data-if-app-name="viewPayments"> <a href="/pages/MyPayments/ViewPayments.aspx">View Payments</a> </li> </ul> </div> </div> </div> </div> </section> </div> <div id="announcements" class="col-xs-12 pb-100"> <section id="welcome"> <h3 class="h3" id="announcementsTitle" data-i18n="home_announcements_title"></h3> <div id="announcementsContainer" class="mb-25"></div> <div id="noticeOfIntentContainer"></div> </section> </div> </div> </section> </div> </div> <div class="container mt-75 mb-50"> <section class="block support-block"> <div class="row"> <div class="col-sm-6"> <h3 class="h3 mb-0" data-i18n="home_help_title"></h3> <span data-i18n="home_help_description"></span> </div> <div class="col-sm-6 pt-10 pb-10"> <a class="btn btn-outline-primary btn-lg btn-block" href="/pages/contact.aspx" data-i18n="home_help_connect"></a> </div> </div> </section> </div> <div id="modal-12b" class="modal fade" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> <h4 class="modal-title">12B Equal Benefits Declaration</h4> </div> <div class="modal-body"> <p> Article 131 of the Labor and Employment Code requires that all Suppliers to the City and County of San Francisco administer benefits equally to employees with domestic partners and employees with spouses. <a href="#" id="goto-12b">Please click here to log-in and submit an Equal Benefits Declaration</a>. After your Equal Benefits Declaration has been received and processed, you will receive an email from the City's Contract Monitoring Division. </p> <p> If you need help with your Equal Benefits Declaration, you can <a href="https://sfcitypartnersupport.sfgov.org/support/solutions/articles/11000022949-file-a-12b-equal-benefits-ordinance-declaration" target="_blank">click here for step-by-step directions on how to File an Equal Benefits Ordinance Declaration</a>. In addition, further information on the Equal Benefits program, including a directory of Equal Benefit compliant firms, can be found on the <a href="https://sfgov.org/cmd/12B-equal-benefits-program" target="_blank">Contract Monitoring Division website</a>. </p> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> </div> </div> </div> </div> <div id="modal-notice" class="modal fade" tabindex="-1" role="dialog"> <div class="modal-dialog modal-lg" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> <h4 class="modal-title"></h4> </div> <div class="modal-body"> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> </div> </div> </div> </div> </div> <!-- /#main --> <script> var elementNum = 1; var stateNum = 1; function handleSearchBlur() { var $searchButton = $("[id=searchButton]"); if (!$("[id=searchListings]").val() && !$("[id=findById]").val()) { $searchButton.text($.i18n('_search_all')) } else { $searchButton.text($.i18n('_search')) } } var initNigpWS = function () { var url = '/ws/Init'; $.ajax({ type: "POST", url: url, contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { }, error: function (xmlHttpRequest, textStatus, errorThrown) { } }) }; function goEventSearch() { InFlight.GTM.home.searchAll(); window.location.href = "/pages/event-search.aspx"; } function handleNoticeOfIntent(e) { var targetBase = InFlight.NLX.Cfg.Customer.psRootUrl().replace('/SUPPLIER/', '_' + elementNum + '/SUPPLIER/'); var myconfig = { targetUrl: targetBase + "/c/SCP_SUPPLIER_PORTAL.SCP_ANNOUNCE_PGLT.GBL?ICAction=" + e.currentTarget.id + "&ICAJAX=1&ICFromPagelet=true&ICElementNum=" + elementNum + "&ICStateNum=" + stateNum + "&manual_request=true", targetVerb: "GET", showLoading: true, manualRequestObj: [{ Lbl: "heading", Src: "[id='FSP_NOTIFY_VW_EMAIL_SUBJECTTEXT']", Data: "text" }, { Lbl: "instructions", Src: ".PAPAGEINSTRUCTIONS", Data: "html" }, { Lbl: "return", Src: "[id='#ICCancel']", Data: "id name" }, { Lbl: "elementNum", Src: "#ICElementNum", Data: "id value" }], callback: function (data) { var modalNotice = $('#modal-notice'); if (data && data.CaptureResults) { if (data.CaptureResults.elementNum) { elementNum = data.CaptureResults.elementNum[0].Properties.value; } if (data.CaptureResults.heading) { modalNotice.modal('show'); var instructions = data.CaptureResults.instructions[0].Properties.html; instructions = instructions.replace(/(<br>\n?\r?){4,}/, "<br>"); modalNotice.find(".modal-title").html(data.CaptureResults.heading[0].Properties.text); modalNotice.find(".modal-body").html(instructions); } } } }; var InFlightDC = new InFlightDCType(false); InFlightDC.init(myconfig); } $(function () { $('#changePasswordLink').attr("href", InFlight.NLX.Cfg.Customer.getChangePasswordLink()); // Use session storage to avoid blank page in view-activity-entrace when hit browser back sessionStorage.removeItem("previous_page"); sessionStorage.removeItem("identificationTab"); sessionStorage.removeItem('addresshiddens'); sessionStorage.removeItem('contactshiddens') localStorage.removeItem("bidder_registration_current_tin"); var myconfig = { targetUrl: InFlight.NLX.Cfg.Customer.psRootUrl() + "/s/WEBLIB_PORTAL.PORTAL_PGLT_PREV.FieldFormula.IScript_PageletPreview?crefname=EP_SCP_ANNOUNCE_PGLT_GBL&title=Announcements" + "&manual_request=true", targetVerb: "GET", followProposedTemplate:false, currentState:"announcements", showLoading: false, manualRequestObj: [ { Lbl: "noticeOfIntent", Src: "a[id^='FSP_NOTIFY_VW_NOTIFY_GUID$']", Data: "name id text" }, { Lbl: "elementNum", Src: "#ICElementNum", Data: "id value" }, { Lbl: "stateNum", Src: "#ICStateNum", Data: "id value" } ], callback: function (data) { if (data && data.CaptureResults) { if (data.CaptureResults.elementNum) { elementNum = data.CaptureResults.elementNum[0].Properties.value; } if (data.CaptureResults.stateNum) { stateNum = data.CaptureResults.stateNum[0].Properties.value; } var noticeOfIntent = { title: "Award Notifications", links: [] }; if (data.CaptureResults.noticeOfIntent) { var intentContainer = $('#noticeOfIntentContainer'); var noticeCount = data.CaptureResults.noticeOfIntent.length; for (var i = 0; i < noticeCount; i++) { var notice = data.CaptureResults.noticeOfIntent[i]; noticeOfIntent.links.push({ link: "javascript:void(0);", id: notice.Properties.id, name: notice.Properties.name, text: notice.Properties.text, onclick: "handleNoticeOfIntent(event)" }); } } var container = $("#noticeOfIntentContainer"); container.html(Handlebars.partials.NoticeOfIntent({ noticeOfIntent: noticeOfIntent })); } } }; var InFlightDC = new InFlightDCType(false); InFlightDC.init(myconfig); InFlight.i18n.localize(); InFlightPSHelper.clearScrollStates(); prepareView(function () { $("#main").show(); if (localStorage.getItem('go_to_12b') === "true") { localStorage.removeItem('go_to_12b') if (InFlight.User.isLoggedIn()) { $('#goto-12b').click(); } } InFlight.CMS.getSiteAnnouncement().then(function (resp) { if (!(resp && resp.length)) { window.location.href = '/pages/error.aspx'; } var announcementsSortedByCreationDates = resp.sort(function(item1, item2) { var item1CreationDate = new Date(item1.creation_date); var item2CreationDate = new Date(item2.creation_date); if (item1CreationDate > item2CreationDate) { return -1; } if (item1CreationDate < item2CreationDate) { return 1; } return 0; }); var announcementConfig = { announcements: announcementsSortedByCreationDates, isLoggedIn: InFlight.User.isLoggedIn() } $("#announcementsContainer").html(Handlebars.partials.Announcements(announcementConfig)); }); }); $("[id=searchListings],[id=findById]").on('blur', handleSearchBlur); //check for permissions for this user and store them in session so header can be correct as well. commonCleanup(); $("#get-started").on("click", goEventSearch); $("#navhome").addClass("active"); $('.hcontainer').matchHeight(); function visitorStyling() { $('#create-account').removeClass("hidden"); $('#contents').addClass('col-md-3 col-md-push-9'); $('#announcements').addClass('col-md-9 col-md-pull-3'); $('#hero-image').addClass('full'); $('#main').addClass('no-overlap'); $('#user-account-info').addClass('hidden'); } function userStyling() { $('#apps').removeClass("hidden"); $('#contents').addClass('col-lg-8 col-lg-push-4'); $('#announcements').addClass('col-lg-4 col-lg-pull-8'); $('#page-wrap').addClass('block'); $('#hero-image').addClass('main'); $('#hero-image .container').addClass('hidden'); $('#page').removeClass('block'); $('#find-opportunity').removeClass('search-block'); } function prepareView(cb) { if (InFlight.User.isLoggedIn()) { InFlight.GTM.home.workCenter(); userStyling(); InFlight.User.getUserInfo().then(function (userInfo) { // Code to handle inactive user, to be taken out until CCSF greenlights it // if (!userInfo) { // setupInactiveUser(); // } setupRequestAccountChange(userInfo); authorizeApps(function () { $('.apps-group').each(function () { var $this = $(this); var appCount = $this.find('li:not(.hidden,.additionalOptions)').length; if (appCount === 0) { $this.addClass('hidden'); } var $editDiversityData = $('[data-if-app-name="editDiversityData"]'); $editDiversityData.addClass("hidden"); if(userInfo.length && userInfo[0].busStruct && (userInfo[0].busStruct === "Individual / Sole Proprietorship" || userInfo[0].busStruct === "Single-member LLC")) { $editDiversityData.removeClass("hidden"); } var additionCount = $this.find('ul.additionalOptionsList > li:not(.hidden)').length; if (additionCount === 0) { $this.find('li.additionalOptions').addClass('hidden'); } }); prepareUserInfo(userInfo); cb(); }); }); } else { visitorStyling(); cb(); } } function prepareUserInfo(userInfo) { $('#userName').text(InFlight.User.currentUser()); if (!InFlight.User.currentUser() && InFlight.User.isLoggedIn()) { $('#user-name').text('Logged in'); } if (userInfo) { setupUserCompanyInfo(userInfo[0]) if (userInfo.length > 1) { setupCompanySelect(userInfo); } $('#user-account-info').removeClass('hidden'); } } function setupInactiveUser() { $('#user-name').text('Logged In'); $('#contents').addClass('hidden'); $('#announcements').addClass('hidden'); $('#inactiveAccountInfo').removeClass('hidden'); $('#inactiveUserContent').removeClass('hidden'); } function setupRequestAccountChange(userInfo) { if (userInfo && userInfo.length) { for (var i = 0; i < userInfo.length; i++) { if (userInfo[i].type.toLowerCase() === InFlight.User.States.ENTITY_TYPE_SUPPLIER.toLowerCase()) { $("[id='requestAccountChange']").attr("data-if-app-name", "supplierChangeRequest"); return; } } $("[id='requestAccountChange'] a").attr("href", "/pages/contact.aspx"); } } function setupCompanySelect(companies) { if (!companies) { return; } $('#soloCompany').addClass('hidden'); $('#multiCompany').removeClass('hidden'); var select = $('#multiCompanySelect'); var count = companies.length; for (var i = 0; i < count; i++) { var company = companies[i]; $('<option/>', { value: i, text: company.accountID + "|" + company.company }).appendTo(select); }; select.off().on('change', function () { var val = $(this).val(); setupUserCompanyInfo(companies[val]); }); } function setupUserCompanyInfo(userInfo) { if (!userInfo) { return; } $('#userID').text(userInfo.accountID); $('#companyName').text(userInfo.company); var $accountSupplier = $('#account-supplier'); var $buttonText = $('#accountInfoBtnText'); var $soloCompany = $('#soloCompany'); var $taxData = $('#taxData'); $('#account-bidder, #account-supplier, #unapproved, #subcontractor, #blocked-account, #supplier-issues, #approved-supplier, #inactive').addClass('hidden'); switch (userInfo.accountType) { case InFlight.User.States.ACCOUNT_TYPE_BIDDER: $('#account-bidder').removeClass('hidden'); $('#requestAccountChange').addClass('hidden'); setupDiversityStatus(userInfo, '#statusDiversity'); setupBidderAlertStatus(userInfo, $buttonText); setupBidder12BStatus(userInfo); setupTaxStatus(userInfo, '#statusTaxBidder'); break; case InFlight.User.States.ACCOUNT_TYPE_UNAPPROVED_SUPPLIER: $accountSupplier.removeClass('hidden'); $('#unapproved').removeClass('hidden'); $buttonText.text($.i18n('home_user_alert_unapproved_supplier')); setupSupplierStatuses(userInfo); setupDiversityStatus(userInfo, '#statusDiversitySupplier'); break; case InFlight.User.States.ACCOUNT_TYPE_SUBCONTRACTOR: $accountSupplier.removeClass('hidden'); $('#subcontractor').removeClass('hidden'); $buttonText.text($.i18n('home_user_alert_subcontractor')); setupSupplierStatuses(userInfo); setupDiversityStatus(userInfo, '#statusDiversitySupplier'); break; case InFlight.User.States.ACCOUNT_TYPE_BLOCKED: $accountSupplier.removeClass('hidden'); $('#blocked-account').removeClass('hidden'); $buttonText.text($.i18n('home_user_alert_blocked')); setupSupplierStatuses(userInfo); setupDiversityStatus(userInfo, '#statusDiversitySupplier'); break; case InFlight.User.States.ACCOUNT_TYPE_SUPPLIER_ISSUES: $accountSupplier.removeClass('hidden'); $('#supplier-issues').removeClass('hidden'); $buttonText.text($.i18n('home_user_alert_supplier_issues')); setupSupplierStatuses(userInfo); setupDiversityStatus(userInfo, '#statusDiversitySupplier'); break; case InFlight.User.States.ACCOUNT_TYPE_APPROVED_SUPPLIER: $accountSupplier.removeClass('hidden'); $('#approved-supplier').removeClass('hidden'); $buttonText.text($.i18n('home_user_alert_approved_supplier')); setupSupplierStatuses(userInfo); setupDiversityStatus(userInfo, '#statusDiversitySupplier'); break; case InFlight.User.States.ACCOUNT_TYPE_INACTIVE: $soloCompany.addClass('hidden'); $taxData.addClass('hidden'); $accountSupplier.removeClass('hidden'); $('#inactive').removeClass('hidden'); $buttonText.text($.i18n('home_user_alert_inactive')); setupSupplierStatuses(userInfo); setupDiversityStatus(userInfo, '#statusDiversitySupplier'); break; } } function setupSupplierStatuses(userInfo) { if (!userInfo) { return; } setupTaxStatus(userInfo, '#statusTaxSupplier'); setupSupplier12BStatus(userInfo); if ($('#account-supplier').find('.alert-light-assert,.alert-danger').length > 0) { $('#accountInfoBtn').click(); } } function setupDiversityStatus(userInfo, selector) { if (!userInfo) { return; } var $statusBox = $(selector); if(userInfo.type === "Supplier") { $statusBox.addClass("hidden"); } if(userInfo.busStruct && (userInfo.busStruct === "Individual / Sole Proprietorship" || userInfo.busStruct === "Single-member LLC") && userInfo.diversityExists === 'N') { $statusBox.removeClass('hidden'); var statusText = $.i18n('home_user_status_diversity_link'); $statusBox.removeClass('alert-success alert-danger alert-warning').addClass('alert-info'); $statusBox.find('.status-msg').html(statusText); } return; } function setupTaxStatus(userInfo, selector) { if (!userInfo) { return; } var statusText, alertClass; var $statusBox = $(selector); // if user is bidder with a compliance status, show static bidder tax status if (userInfo.complianceStatus !== InFlight.User.States.COMPLIANCE_STATUS_NONE && userInfo.accountType === InFlight.User.States.ACCOUNT_TYPE_BIDDER) { $statusBox.removeClass('hidden'); return; } // get tax status message if(userInfo.vendorClass === InFlight.User.States.VENDOR_CLASS_SUBCONTRACTOR) { //subcontractors always get the same message no matter what the tax status statusText = $.i18n('home_user_status_tax_none_unapproved_supplier'); alertClass = 'alert-danger'; } else if (userInfo.govClass === InFlight.User.States.GOV_CLASS_TAX) { switch (userInfo.supplierExpirationStatus) { case InFlight.User.States.SUPPLIER_EXPIRATION_STATUS_GOOD: statusText = $.i18n('home_user_status_tax_valid'); alertClass = 'alert-success'; break; case InFlight.User.States.SUPPLIER_EXPIRATION_STATUS_IMMINENT: statusText = $.i18n('home_user_status_tax_near_expiration'); alertClass = 'alert-danger'; break; case InFlight.User.States.SUPPLIER_EXPIRATION_STATUS_IMMINENT_ASAP: statusText = $.i18n('home_user_status_tax_near_expiration_asap'); alertClass = 'alert-danger'; break; case InFlight.User.States.SUPPLIER_EXPIRATION_STATUS_EXPIRED: statusText = $.i18n('home_user_status_tax_expired'); alertClass = 'alert-danger'; break; } } else if (userInfo.govClass === InFlight.User.States.GOV_CLASS_EX) { switch (userInfo.supplierExpirationStatus) { case InFlight.User.States.SUPPLIER_EXPIRATION_STATUS_GOOD: statusText = $.i18n('home_user_status_tax_ex_valid'); alertClass = 'alert-success'; break; case InFlight.User.States.SUPPLIER_EXPIRATION_STATUS_IMMINENT: statusText = $.i18n('home_user_status_tax_ex_near_expiration'); alertClass = 'alert-danger'; break; case InFlight.User.States.SUPPLIER_EXPIRATION_STATUS_IMMINENT_ASAP: statusText = $.i18n('home_user_status_tax_ex_near_expiration_asap'); alertClass = 'alert-danger'; break; case InFlight.User.States.SUPPLIER_EXPIRATION_STATUS_EXPIRED: statusText = $.i18n('home_user_status_tax_ex_expired'); alertClass = 'alert-danger'; break; } } else if (userInfo.govClass === InFlight.User.States.GOV_CLASS_DND) { statusText = $.i18n('home_user_status_tax_dnd'); alertClass = 'alert-success'; } else if (userInfo.govClass === InFlight.User.States.GOV_CLASS_NONE) { statusText = $.i18n('home_user_status_tax_none'); alertClass = 'alert-danger'; } else if (userInfo.govClass === InFlight.User.States.GOV_CLASS_DLQ) { statusText = $.i18n('home_user_status_tax_dlq'); alertClass = 'alert-danger'; } else { statusText = ''; alertClass = 'alert-success'; } if (userInfo.taxExpirationDate) { var taxExpirationReadable = Date.parse(userInfo.taxExpirationDate).toString('MM/dd/yy'); statusText = statusText.replace(/###TAX_EXPIRE_DATE###/g, taxExpirationReadable); } $statusBox.removeClass('alert-success alert-danger alert-warning').addClass(alertClass); $statusBox.find('.status-msg').html(statusText); } function setupBidderAlertStatus(userInfo, $buttonText) { $buttonText.text($.i18n('home_user_alert_registered_bidder')); if (userInfo.complianceStatus === InFlight.User.States.COMPLIANCE_STATUS_NONE) { $('#bidderUpgradeNow').removeClass('hidden'); } } function setupBidder12BStatus(userInfo) { if (!userInfo) { return; } var statusText, alertClass; var $statusBox = $('#status12BBidder'); switch (userInfo.complianceStatus) { case InFlight.User.States.COMPLIANCE_STATUS_COMPLIANT: statusText = $.i18n('home_user_status_12b_bidder_compliant'); alertClass = 'alert-success'; break; case InFlight.User.States.COMPLIANCE_STATUS_CONTRACT: statusText = $.i18n('home_user_status_12b_bidder_contract'); alertClass = 'alert-success'; break; case InFlight.User.States.COMPLIANCE_STATUS_PENDING: statusText = $.i18n('home_user_status_12b_bidder_pending'); alertClass = 'alert-danger'; break; case InFlight.User.States.COMPLIANCE_STATUS_DENIED: statusText = $.i18n('home_user_status_12b_bidder_denied'); alertClass = 'alert-danger'; break; case InFlight.User.States.COMPLIANCE_STATUS_NONE: $statusBox.hide(); return; } $statusBox.removeClass('alert-danger alert-success').addClass(alertClass); $statusBox.find('.status-msg').html(statusText); } function setupSupplier12BStatus(userInfo) { if (!userInfo) { return; } var statusText, alertClass; var $statusBox = $('#status12BSupplier'); switch (userInfo.complianceStatus) { case InFlight.User.States.COMPLIANCE_STATUS_COMPLIANT: statusText = $.i18n('home_user_status_12b_supplier_compliant'); alertClass = 'alert-success'; break; case InFlight.User.States.COMPLIANCE_STATUS_CONTRACT: statusText = $.i18n('home_user_status_12b_supplier_contract'); alertClass = 'alert-success'; break; case InFlight.User.States.COMPLIANCE_STATUS_PENDING: statusText = $.i18n('home_user_status_12b_supplier_pending'); alertClass = 'alert-danger'; break; case InFlight.User.States.COMPLIANCE_STATUS_DENIED: statusText = $.i18n('home_user_status_12b_supplier_denied'); alertClass = 'alert-danger'; break; case InFlight.User.States.COMPLIANCE_STATUS_NONE: statusText = $.i18n('home_user_status_12b_none'); alertClass = 'alert-danger'; break; } $statusBox.removeClass('alert-danger alert-success').addClass(alertClass); $statusBox.find('.status-msg').html(statusText); } function setupHQStateStatus(userInfo) { if (!userInfo) { return; } var statusText, alertClass; var $statusBox = $('#statusHQ'); if (userInfo.hqState) { statusText = $.i18n('home_user_status_hq_exists', userInfo.hqState); alertClass = 'alert-success'; } else { statusText = $.i18n('home_user_status_hq_none'); statusText = statusText.replace(/###SUPPLIER_NAME###/g, userInfo.company); alertClass = 'alert-danger'; $statusBox.find('.state-dropdown').removeClass('hidden'); } $statusBox.removeClass('alert-danger alert-success').addClass(alertClass); $statusBox.find('.status-msg').html(statusText); } $('#goto-12b').on('click', function () { $('[data-if-app-name="12bDeclaration"]').click(); }); $('#uploadW9').on('click', function () { sessionStorage.setItem('identificationTab', 'true'); }); if (sessionStorage.isBidder === 'true') { $('[data-if-app-name="uploadW9"]').removeClass('hidden'); } }); </script> <form> <!-- note - we need to implement a replacement in any page that has context wrappers --> <input type="hidden" data-if-label="hiddenInput" data-if-source="input[type=hidden]" data-if-content="id name value" /> </form> </div> </div> <div id="global_footer" > <footer> <div class="container"> <div class="row"> <div class="col-xs-12 col-sm-6 col-sm-push-3 text-center logos"> <a href="https://sfgov.org/" target="_blank"><img src="/assets/images/sf-seal.svg" alt="sfgov.org" class="ccsf"></a> </div> </div> <div class="row hidden"> <div class="col-xs-6 col-sm-3 col-sm-pull-6"> &copy; 2015-<span id="footerYear"></span><script>$("#footerYear").html(new Date().getFullYear());</script> CCSF </div> <div class="col-xs-6 col-sm-3 text-right"> <a href="search.aspx">Search</a> | <a href="https://sfgov.org/policies#private">Privacy Policy</a><br> <a href="https://www.facebook.com/SF" target="_blank"><i class="fa fa-2x fa-facebook-square" aria-hidden="true"></i><span class="sr-only">Facebook</span></a> <a href="https://twitter.com/sfgov" target="_blank"><i class="fa fa-2x fa-twitter-square" aria-hidden="true"></i><span class="sr-only">Twitter</span></a> </div> <div class="col-xs-12"> <p class="sr-only" tabindex="0">For further information, help or simply to give feedback on the site reach out to sfcitypartnersupport@sfgov.org</p> </div> </div> </div> <div class="background"> </div> </footer> </div> <!-- Include all compiled plugins (below), or include individual files as needed --> <script src="/assets/js/templates.js?rev=a0853beaec"></script> <script src="/assets/js/app.min.js?rev=ba286689a7"></script> <script src="/assets/js/sessionExtension.min.js?rev=8e98d95efc"></script> <script src="/assets/js/siteMaintenance.min.js?rev=164ed14d2c"></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10