{"version":3,"sources":["scripts/app.js"],"names":["handleResponse","promise","callback","then","response","data","catch","error","CryptoJS","u","p","d","l","lib","s","t","Base","extend","a","prototype","this","c","mixIn","hasOwnProperty","init","$super","apply","arguments","create","toString","clone","r","WordArray","words","sigBytes","length","v","stringify","concat","e","j","clamp","k","push","ceil","call","slice","random","w","enc","Hex","join","parse","parseInt","substr","b","Latin1","String","fromCharCode","charCodeAt","x","Utf8","decodeURIComponent","escape","Error","unescape","encodeURIComponent","q","BufferedBlockAlgorithm","reset","_data","_nDataBytes","_append","_process","blockSize","max","_minBufferSize","min","_doProcessBlock","splice","Hasher","cfg","_doReset","update","finalize","_doFinalize","_createHelper","_createHmacHelper","n","HMAC","algo","Math","Base64","_map","charAt","indexOf","abs","sin","MD5","_hash","z","A","B","C","D","E","f","m","g","h","floor","HmacMD5","EvpKDF","keySize","hasher","iterations","compute","Cipher","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","_xformMode","_key","process","ivSize","encrypt","decrypt","StreamCipher","mode","_iv","_prevBlock","BlockCipherMode","Encryptor","Decryptor","_cipher","processBlock","encryptBlock","decryptBlock","CBC","pad","Pkcs7","unpad","BlockCipher","padding","iv","_mode","CipherParams","formatter","format","OpenSSL","ciphertext","salt","SerializableCipher","key","algorithm","_parse","kdf","execute","PasswordBasedCipher","F","G","y","H","AES","_nRounds","_keySchedule","_invKeySchedule","_doCryptBlock","routeConfig","$routeProvider","when","templateUrl","controller","allowGuest","arrRegions","arrPermissions","angular","module","config","$scope","$routeParams","orderCodes","contentOnly","protocol","document","location","hostname","baseUrlSrc","baseApi","baseMy1","ENV","ppCompanyUrl","cisUsApiUrl","cisUsApiToken","service","$resource","$rootScope","actions","acquireToken","method","url","getDashboard","filter","items","property","item","from","to","dateFrom","Date","getTime","dateTo","splited","replace","split","itemDate","regions","template","AppRun","$auth","$localeService","$location","$permission","$layout","$session","$sce","AuthAPI","MultiCountryModal","fnCloseModal","customerId","loading","raw","get","login","clear","window","reload","console","logout","onLoading","setTimeout","back","evt","preventDefault","history","go","isAuthPage","path","startsWith","currentYear","getFullYear","isEmpty","_","includes","ipAddress","isAllowed","isAllowedRegionSpecific","isAllowedBatch","setLocale","$on","middleware","getIp","userip","ip","trigger","$","getJSON","test","readyState","addEventListener","showMultiCountry","multiCountry","onShowMultiCountryModal","show","getFormatoData","userLang","navigator","language","userLanguage","sanitizeUrl","sanitizedUrl","trustAsResourceUrl","run","$window","CreateGa","setGa","getUserId","user","UserId","gaTrackingId","toLowerCase","userId","ga","gtag","CustomUserCustomerID","CustomerId","CustomUserCustomerName","ProfileEnterprise","CustomUserID","CustomUserName","Name","CustomUserEmail","Email","page_location","href","page_title","title","page_path","hash","send_to","event","gaRequestEvent","host","action","hitType","eventCategory","eventAction","eventLabel","gaExternalAccessEvent","label","$$host","gaTrackingEvent","orderId","Config","$httpProvider","$qProvider","interceptors","errorOnUnhandledRejections","ResourceInterceptor","$translate","$q","request","token","endsWith","headers","Authorization","$$url","reqTime","now","setSessionStorage","responseError","status","translation","toastr","warning","reject","$locationProvider","otherwise","redirectTo","factory","$redirect","vm","baseBanners","getBannerInstitucional","locale","image","passive","externalLink","customAction","getBannerPartnerPortal","getBannerFinancialSolutions","getBannerComstorExpress","redirect","getBannerComstortv","getBannerBlueskyMarketplace","getBannerNFComissionamento","getBannerTDSynnex","getBannerCloudSolv","getBannerSilverPeak","getBannerFraude","getBannerExcelenciaDistribuicao","getBannerSplunk","getBannerComstor","banners","dataLimiteBannerExcelenciaDistribuicao","banner","index","map","GetCompanySituationList","id","GetById","list","companySituation","getMenuComstorExpress","iconpath","visible","text","ev","getMenuWestconExpress","getMenuConfigurador","getMenuEstoque","getMenuPortalFinanceiro","getMenuRastreamento","GetByCode","code","OrderStatusList","orderStatus","GetBySLUG","slug","Get","List","type","provider","getDefaultLocate","defaultLocale","$get","tmhDynamicLocale","defaultLocaleProvider","set","use","removeClass","addClass","$emit","$translateProvider","useSanitizeValueStrategy","useUrlLoader","useStaticFilesLoader","prefix","suffix","preferredLanguage","tmhDynamicLocaleProvider","localeLocationPattern","router","ListPermissions","ListByGroupId","GetUserPermissions","DeleteUserPermissions","CreateUserPermissions","ChangeUserPermissions","query","isArray","GetTipoCliente","GetClassificacao","GetCondicaoPagamento","recoverPassword","resetPassword","welcomePassword","getUser","Content-Type","loginMyWestcon","GetBankSlip","cart","_total","_subtotal","IsentoICMS","_items","UfDestino","UfOrigem","frete","cnpjEndUser","faturamentoSelecionado","_updatesubTotal","i","comissao","parseFloat","ComissaoLiquida","isNaN","Quantidade","PrecoUnitario","itemsSubtotal","subtotal","comission","total","getItems","addItem","indexOfItem","cartHasItem","updateItemAmount","updateItem","getIndexByPartnumber","PartNumber","removeItem","itemAmount","amount","empty","info","partnumber","refillCart","$http","listCountries","x-api-key","listStates","country","listCities","state","AcceptInvoice","SendCloudReport","GetReport","GetCredentials","GetBillingCycles","CreateCredential","DownloadReportExcel","ConfirmReportData","SetPreConfirmStatus","DeleteCredentials","ListBy","saveLog","params","postCompany","updateCompany","getCompany","getCompanyById","listByCuit","limit","offset","Send","Update","Create","SetDefault","Delete","NonResident","CreateCommissionBatch","GetTitlesByFilter","GetBatchByFilter","DownloadExcel","GetXMLNfe","GetCSP","integrate","GetParams","LoginComstor","LoginWestcon","LoginConfigurador","me","on","toggleOverlay","$broadcast","next","current","pageCls","uri","isTransparent","$overlay","hasClass","$mdDialog","showPopup","message","parent","alert","autoWrap","textContent","ok","showPopupFinally","finally","listOrders","GetOrderDetails","GetCSPDetails","listOrdersByReport205","GetOrderTracking","ListOrderHistoryByFilter","GetOrderHistoryDetail","listPartNumbers","resellerOrderExcel","orderTrackerExcel","orderReport205Excel","GetLastMileTracking","ReportDelayedOrder","ReportDelayedOrderFromHistory","ListLicensesByFilter","DownloadContract","DownloadLicense","DownloadLicenseLote","$document","permission","isAllowedModule","userPermissions","values","Value","intersection","isAllowedRegion","userRegion","batch","getCurrentUser","CodERP","Permissions","undefined","showMenu","referrer","originalPath","isLogged","codERP","GetPriceInformation","GetPriceListData","ListStockItems","ListStockItemsByFilter","ListFatorVendorByCustomerId","ListVendors","ListProposal","getProposal","SendAcceptProposal","SendProposalEmail","RevalidateProposal","GetQuote","ListQuotes","SendAcceptQuote","SendQuoteEmail","GenerateSimulator","GetResellerForAutoComplete","GetResellerFromEconomicIdAutoComplete","GetSalesOrderAddress","GetContactCustomers","PutSalesOrderAddress","PostSalesOrderAddress","PostPostTemporaryQuoteAddress","GetTemporaryQuoteAddress","GetEconomicGroupForAutoComplete","RevalidateQuote","ListAll","DownloadInvoicePdf","SendReceipt","GetNFeCALA","formatValue","isJsonString","JSON","str","getValue","value","isObject","isString","sessionStorage","storage","localStorage","setItem","default_","getItem","unset","getSessionStorage","unsetSessionStorage","PreLogin","password","$encryption","stored","isAllowGuest","access_token","refresh_token","oUser","referer","redirectPortal","transitmessage","pass","hexResult","base64ToHex","encrypted","hexToBase64","substring","PBKDF2","decrypted","btoa","bin","atob","hex","tmp","AESEncrypt","AESDecrypt","countryIso","getEnubeUrl","IpInfo","CountryIso","callEnube","enubeUrl","createElement","getElementsByTagName","async","src","parentNode","insertBefore","mt","formatDate","defaultValue","date","toLocaleDateString","formatDateTime","toLocaleString","formatUnknown","onlyDigits","removeSpecialCharacters","SweetAlertFactory","getTargetMessage","target","Message","getDataMessage","exceptionHandler","showTranslation","throwException","sweetAlertConfig","testMessage","targetMessage","dataMessage","mensagem","Mensagem","errorMessage","ErrorMessage","getBrowser","isOpera","opr","addons","opera","userAgent","isFirefox","InstallTrigger","isSafari","HTMLElement","safari","pushNotification","isIE","documentMode","isEdge","StyleMedia","isChrome","chrome","isBlink","CSS","getPopupUnblockLink","browser","$helper","toggleFullscreen","el","documentElement","reqFS","requestFullScreen","webkitRequestFullScreen","mozRequestFullScreen","msRequestFullScreen","exitFS","exitFullscreen","webkitCancelFullScreen","mozCancelFullScreen","msExitFullscreen","notFS","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","mountFilters","filters","_filters","table","column","operator","getConfigByData","tokenType","models","TokenType","Embed","accessToken","embedReportToken","embedUrl","embedReportURL","settings","filterPaneEnabled","reportId","startPowerBI","success","$element","getElementById","dashboard","powerbi","embed","off","log","detail","ExpressPortalAPI","popupUnblockLink","div","innerHTML","translations","showWithFinally","confirm","afterGetExpressPortalCredentials","signature","developer_mode","ajax","crossDomain","xhrFields","withCredentials","afterLoginExpressPortal","jqXHR","textStatus","errorThrown","open","exports","define","amd","swal","o","Object","defineProperty","configurable","enumerable","__esModule","default","CLASS_NAMES","MODAL","OVERLAY","SHOW_MODAL","MODAL_TITLE","MODAL_TEXT","ICON","ICON_CUSTOM","CONTENT","FOOTER","BUTTON_CONTAINER","BUTTON","CONFIRM_BUTTON","CANCEL_BUTTON","DANGER_BUTTON","BUTTON_LOADING","BUTTON_LOADER","getNode","querySelector","stringToNode","trim","firstChild","insertAfter","nextSibling","removeNode","parentElement","removeChild","throwErr","isPlainObject","getPrototypeOf","ordinalSuffixOf","overlayMarkup","iconMarkup","titleMarkup","textMarkup","footerMarkup","CONFIRM_KEY","CANCEL_KEY","className","closeModal","assign","defaultButtonList","cancel","toUpperCase","keys","getButtonListOpts","Array","injectElIntoModal","appendChild","classList","add","initModalContent","icon","initTitle","initText","content","buttons","dangerMode","modalMarkup","isOpen","timer","resetState","setActionValue","setActionOptionsFor","openModal","remove","onAction","resolve","getState","stopLoading","querySelectorAll","Function","eval","sweetAlert","insertAt","transform","locals","sources","sourceRoot","refs","parts","base","css","media","sourceMap","insertInto","attrs","rel","forEach","setAttribute","singleton","bind","URL","createObjectURL","revokeObjectURL","Blob","styleSheet","cssText","createTextNode","childNodes","convertToAbsoluteUrls","all","DEBUG","Boolean","pathname","Promise","TypeError","writable","Element","CharacterData","DocumentType","_state","_handled","_value","_deferreds","_immediateFn","onFulfilled","onRejected","_unhandledRejectionFn","constructor","race","warn","_setImmediateFn","_setUnhandledRejectionFn","setImmediate","_id","_clearFn","clearTimeout","setInterval","clearInterval","close","unref","ref","enroll","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","args","nextTick","postMessage","importScripts","onmessage","source","attachEvent","MessageChannel","port1","port2","onreadystatechange","self","fun","array","env","argv","version","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","polyfill","getOwnPropertyDescriptor","getOpts","setDefaults","body","errorIconMarkup","warningIconMarkup","successIconMarkup","contentMarkup","buttonMarkup","style","display","offsetHeight","createDocumentFragment","children","focus","element","attributes","shiftKey","tabIndex","removeEventListener","O","closeOnEsc","closeOnClickOutside","button","getContentOpts","DEPRECATED_OPTS","logDeprecation","placeholder","onlyRename","replacement","subOption","link","imageUrl","customClass","imageSize","showCancelButton","showConfirmButton","confirmButtonText","confirmButtonColor","cancelButtonText","closeOnConfirm","closeOnCancel","showLoaderOnConfirm","animation","inputType","inputValue","inputPlaceholder","html","allowEscapeKey","allowClickOutside","$factory","translationKey","defaultConfig","deactivation","merge","showTranslationLote","showTranslationWithFinally","showConfirm","btnConfirmText","btnCancelText","confirmText","cancelText","infoTranslate","myFileUpload","restrict","scope","files","file","reader","FileReader","name","result","readAsDataURL","val","directive","myMask","require","ctrl","_fnParseMask","parsed","_fnHandleRepetition","masks","_myMask","_fnParseRepetition","_checkDuplicateSizes","mask","newMask","match","exec","fullMatch","digit","initial","final","repeat","sizesArr","uniqSizeSet","Set","size","_fnMaskOne","indexMask","indexValue","maskedValue","currentMask","currentValue","myMasker","tokens","escapeChar","pattern","fixedValue","$setValidity","_fnIsInputValid","_fnApplyMask","sort","nextMask","RegExp","allowInvalid","_fnClear","submitMasked","clearOnBlur","0","9","S","toLocaleUpperCase","toLocaleLowerCase","U","*","$setViewValue","$viewValue","$render","$invalid","$parsers","unshift","myModalToolbar","itemMenu","slides","powerBi","$el","hostId","userEmail","userName","Login","customerName","GroupEconomic","NomeGrupo","customerZipCode","Code","port","fileUpload","dlEnterKey","keyCode","which","$apply","$eval","myFooter","myLoading","myNavbar","myPagination","mySupport","$attrs","$ctrl","$root","scrolled","bottom","scroll","innerHeight","scrollY","find","myTopo","myIconAccept","myIconAllDownload","myIconDownload","myIconInfo","myIconSync","priceInfoFilter","enubeScript","inputCurrency","$filter","dig","Number","padStart","mySelectLocale","$transclude","languages","selectedLanguage","fileUploadOne","fileName","base64","myNewPagination","fnValidateFilter","valueFrom","valueUntil","endSupportFrom","endSupportUntil","$id","onNextPage","paginated","currentPage","loadData","onPrevPage","onChangeLimit","onApplyFilter","description","direction","transclude","containerId","containerSelector","tooltipWrapperId","tooltipWrapperSelector","isList","container","append","$wrapper","$modal","rect","currentTarget","getBoundingClientRect","modalWidth","width","modalHeight","height","directionX","directionY","scrollTop","right","left","top","toggleClass","attr","appendTo","Brasil","Cala","Mexico","Colombia","Peru","Equador","Argentina","Chile","DeactivationModalCtrl","keyTitle","redirectContactUs","clickOutsideToClose","ActiveContractsCtrl","ContractAPI","fnListByFilter","CustomerID","contractList","contracts","paginate","limitOptions","lastOffset","exibitionCount","userCount","filteredList","nextPage","prevPage","hasNextPage","changeLimit","itens","isDefined","displayedItems","onShowDialog","contract","targetEvent","needreload","applyFilter","searchFromQuery","filteredContracts","obj","numeroContrato","produto","vendor","ManageContractsModalCtrl","CreditCardAPI","getCompanyCards","CodUsuario","fnAfterGetCompanyCards","cardList","fnAfterSave","onClose","hide","cards","newCard","newCondicao","onSave","formManageContract","customerID","ukeyCartao","ukeycartao","ukeyVendor","ukey_Vendor","AuthAcceptProposalCtrl","fnAfterLogin","proposta","versao","b64DecodeUnicode","unserialize","chunks","AuthExpiredCtrl","AuthExternalLoginCtrl","screen","fnLogin","plaintext","fnDecrypt","decodeURI","bytes","AuthLogoutCtrl","fnInit","AuthMyWestconCtrl","decypt","redirectList","pricelist","financialportal","AuthPageCtrl","UserAPI","$modalAuthFactory","$modalFactory","$codErp","separa","texto","AvisoSemUsuario","fnAfterRecoverPassword","recover","payload","Success","GroupEconomicList","culture","onRedirect","noticeEnabled","$$path","noticeLogin","ResetPasswordCtrl","fnLoginPortal","fnAfterLoginPortal","fnAfterResetPassword","fnAfterWelcomePassword","fnRedirectLostPassword","fnAfterGetUser","sucesso","minPasswordLength","BusinessAnalyticsCtrl","BusinessAnalyticsFactory","$pbi","BaseCompanyRegistryCtrl","getFileDetails","fileSize","fileSizeElementId","fileSizeElement","fileSizeInMB","toFixed","removeOtherFile","otherFileList","pushOtherFiles","elementHTML","otherFiles","Content","checkFilesTotalSize","totalSize","handleHttpError","xhr","errorKey","responseText","CompanyRegistryArgentinaCtrl","$anchorScroll","ApplicationResponseAPI","CompanyAPI","EnderecoAPI","filterFilter","$shareholderService","$companyService","$controller","getToastrTranslations","toastrMessages","getToastrMessages","fnIsFormValid","form","valid","interestMissing","company","linhaInteresse","errorTypes","$error","reqFields","translationKeys","required","$name","$$attr","condicaoPagamentoArquivo","SingleDocument","ContratoSocial","AtaAutoridades","BankStatements","InscricaoImpostos","transferComplete","showModalSucesso","showModalError","addContactNFe","contatos","nomeContato","telefone","email","receiveFinancialInfo","receiveNFe","receiveNFeXML","tipo","addContactPurchases","addContactAccounts","addContacts","contactMain","mainContactOnly","contactNFe","contactPurchases","contactAccounts","addLocale","getDays","days","codErp","countryId","states","resetCity","city","cities","fillWithPreRegistrationData","fillAllContact","isUpdate","intranet","intranetType","fillWestconVendor","fillState","isUndefined","ukeyVendedor","vendedor","westconVendor","westconVendors","westconCode","ukeyEstado","estado","searchCity","fillCity","ukeyCidade","cidade","searchState","stateId","fillDiaNFe","diaLimiteEmissaoNfe","prazoNfe","mapCompany","afterListCuit","possibleCompanies","modal","conditionsPayments","financialClassifications","formData","oldCompany","timeoutID","typeClients","shareholdersQty","valueShareholdersQty","Justificativa","cuit","cnpj","localeCompare","selectVendor","selectCountry","ukeyPais","pais","selectState","selectCity","selectTypeClients","cliente","TipoDeClienteFornecedor","selectConditionPayment","conditionPayment","CondicaoPagamento","queryWestconVendors","queryState","queryCity","queryTypeClients","queryConditionsPayments","sendCompany","Percentagem","contatoPrincipal_Nome","Reseller","empresaResponsavel","Company","Acionista","FormData","XMLHttpRequest","otherFile","ValidatePercentage","send","searchCompanyData","validarCuit","acumulado","digitos","digito","pop","verif","origin","errorCompanyRegister","showModalFileSize","errorFileSize","UpdateAcionista","CompanyRegistryBrasilCtrl","fnWatchCnpj","rootScope","lastCnpjSearch","searchAtSerasa","isCnpjRegisteredInvalid","isSuframa","interests","inscricaoMunicipal","InscricaoMunicipal_PDF","hasCNPJ","confirmMainContactOnly","openAvisoContato","cnpjRegistered","fnFillInscricaoEstatual","isContribuinte","contribuinte","isInscricao","possuiInscricao","isDeclared","interestList","toggleCheck","interest","getClsCnpjRegistered","$dirty","$watch","onConfirmAvisoContato","onCloseAvisoContato","frmCompany","fnFillWithPreRegistrationData","fnFillAllContact","fnFillWestconVendor","fnFillState","fnFillCity","fnFillDiaNFe","fnFillInscricaoMunicipal","possuiInscricaoMunicipal","fnFillComissao","recebeComissao","formatEnrollment","isSerasa","inscricaoEstadual","CompanyRegistryCalaCtrl","CisAPI","AttachExemptionSalesTaxForm","condicionPago","commercialReferencesFiles","FinancialStatements","EstadosFinanceirosAno","EscriturasEmpresa","IdentificacaoFiscal","CopiaRepresentant","NomeFantasiaTranslateKey","EstadoTranslateKey","CidadeTranslateKey","countries","downloadNonResident","responseType","onload","blob","download","click","onerror","varCheckLineCreditCala","checkLineCreditCala","fillCountry","cityName","removeCommercialReferencesFile","hashKey","$$hashKey","getCommercialReferencesFileDetails","filesConcat","client","filteredState","filteredCities","CompanyRegistryChileCtrl","addContactLogistics","contactLogistics","CompanyRegistryColombiaCtrl","tipoJuridico","CertificateShareholder","CommercialReferences","SingleTaxRegistration","ChamberOfCommerceAndCertificate","FinancialStatementsCurrentYear","BankingCommercialsReferences","westconCidade","$modelValue","CompanyRegistryEquadorCtrl","$setDirty","CertificadoConstituicao","FinancialStatementsLastYear","DeclaracaoImposto","SRI","showModalInvalidFile","contabilidade","errorInvalidFile","CompanyRegistryMexicoCtrl","BairroTranslateKey","term","CompanyRegistryPeruCtrl","LicencaFuncionamento","DNI","IGV","CompanyRegistryPreCtrl","$locale","$formatter","$companyFactory","$modalCompany","vcRecaptchaService","fnListCalaCountries","fnAfterListCalaCountries","calaCountries","fnMapCompany","fnNextStep","fnShowAlertModal","fnShowNotFoundModal","RegistryNextStep","showAlertModal","dataAtualizacao","isConfirm","countryValue","showNotFoundModal","isValidRuc","ruc","nextStepUrl","widgetId","region","IsValidRegion","model","GetCompanies","selectRegion","Text","paisCode","Url","reseller","enduser","onCaptchaExpiration","setCaptchaResponse","setCaptchaWidgetId","onSearchCompany","input","westconPais","validateTaxID","GetCompany","ContactUsCtrl","AlertFactory","ContactUsAPI","invalidForm","EmailSuccess","contactUs","Enterprise","telephone","Telephone","regionSelected","fnFillSystemArea","systemAreaSelected","fnAfterSend","systemAreaList","regionList","setResponse","setWidgetId","cbExpiration","sendContactUs","frmContactUs","systemAreaTranslationKey","dict","regionTranslationKey","systemArea","BatchInvoiceCtrl","$modalInvoiceFactory","$commissionStatus","EndUserInvoiceAPI","fnGetBatchByFilter","fnGetFilter","fnAfterListBatch","totalRows","noBatch","batchHeaderList","totalToMountBatch","titlesSummary","totalToMountBatchWithTaxes","totalToMountBatchNoTaxes","commissionGroup","statusCommission","billingCompany","showBillingCompanySelect","pageNumber","rowsPage","invoiceBatchActive","statusCommissionList","billingCompanySelectList","selected","formatParcel","invoiceParcel","parcel","formatOV","onResetFilter","onToggleDetails","header","showdetails","makeCommissionBatch","LotesComissaoMessageModalCtrl","EndUserInvoiceCtrl","$commissionType","$titleStatus","BankSlipAPI","fnCreateCommissionBatch","ukeyCommission","titleList","isChecked","parcelUkey","fileList","fnAfterCreateCommissionBatch","openCommissionBatchSuccessModal","fnAfterListEndUserInvoice","minEmissionDate","maxEmissionDate","minDueDate","maxDueDate","statusNote","typeCommission","cutDate","opened","orderBy","ASC","oVWestcon","customerCode","numberTitle","endUser","getCommissionBatchTitles","noCommissionGroup","search","isCommissionBatch","fnAfterDownload","titles","emptyTitleList","summary","onRecalculate","fnResetSummary","currency","totalCommissions","totalCommissionsPaid","totalCommissionsCanceled","totalCommissionsPending","totalCommissionsReleased","fnMakeBankSlipIdentifier","invoice","boletoParcelUkey","fnSaveLog","BankSlipIdentifier","IpAddress","DownloadBankSlipLogFactory","fnAfterSaveLog","bankSlipIdentifier","logs","lstDownloadBankSlipLog","fnAfterClickNFSe","json","XmlToObject","xml","CNPJ","NumeroNota","ChaveValidacao","fnAfterXMLNfe","invoiceNumber","fnAfterCSP","csp","commissionBatchName","commissionBatchSuccessCalaArgentina","commissionBatchSuccess","openCommissionBatchMaxDateNoticeModal","commissionBatchMaxDateColombiaNotice","commissionBatchMaxDateArgentinaNotice","commissionBatchMaxDateNotice","isEnableToCreateCommissionBatch","maxAllowedDay","currentDay","getDate","getMonth","openBoletoModal","typeBankSlip","nf_banco","nfBanco","nf_nossoNumero","boletoNossoNumero","nf_CNPJ","endCustomerId","nf_vcto","invoiceMaxPaymentDate","boleto","strXml","XmlToJson","StringToXMLDom","nodeName","old","string","xmlDoc","DOMParser","parser","parseFromString","ActiveXObject","loadXML","urlManualCommissionBatch","urlNfComissionamento","totalCommissionBatch","totalCommissionBatchWithTaxes","totalCommissionBatchNoTaxes","totalCommissionBatchIVA","statusNoteList","typeCommissionList","invoiceEndUserActive","maxOrderValue","minOrderValue","propertyName","reverse","statusList","valorMaximo","valorMinimo","viewData","filtered","fnRedirectContactUs","downloadWorksheet","onDownloadBankSlip","bankSlip","onClickNFSe","onShowNFSe","onOpenURLNFe","onGetXmlNfe","onGetCSP","createCommissionBatch","previewFiles","$preview","readAndPreview","Image","clearAttachments","allChecked","every","someChecked","some","toggleAll","comissionTotalNoTaxes","reduce","valor","comissionTotalWithTaxes","commissionTotal","urlManualCommissionBatchColombia","LotesComissaoMessageColombiaModalCtrl","onRecalculateColombiaTaxes","openNfeModal","nfe","detalhesNfe","onOrderBy","getIconOrderBy","ResellerInvoiceCtrl","$toastr","ResellerInvoiceAPI","bank","fnAfterListInvoices","uniq","invoices","maxTitleValue","titleNetValue","minTitleValue","slider","minValue","maxValue","options","hideLimitLabels","translate","onEnd","filterValue","order","fnAfterNFeCALA","fnAfterGetBankSlip","fnAfterListBankSlipLog","invoiceResellerActive","vcto_from","vcto_to","sortBy","FormatoData","getLineClass","onDownload","viewDataFiltered","onDownloadInvoicePDF","isPaymentInfoShowable","statusToShow","openCSPDetails","ukey","openPayNowModal","payNow","openSendReceiptModal","sendReceipt","verifyDate","BlueskyPortalCtrl","EnubeAPI","$codPais","fnGetPortalUrl","blueskyBaseUrl","fnGetCloudSolvUrlProd","fnGetCloudSolvUrlTesting","portalUrl","ClientId","Secret","Password","baseUrl","CodPais","Uruguai","Paraguai","Bolivia","fnAfterIntegrationSuccess","clientId","secret","fnAfterIntegrationFailure","DashCtrl","$banners","$menu","fnSetBanners","myInterval","noWrapSlides","menu","OnlineStockCtrl","$states","$skuType","ProductAPI","inStock","manufacturer","codVendor","homeState","destinationState","directBilling","icms","skuType","individualSearch","searchByPartnumber","afterListItemsStock","stockItemList","onlyForNewOrderItems","fnAfterGetPriceInfo","priceInfo","changeDestinationStates","allStates","fatorVendorList","skuTypeList","radioList","destinationStates","frm","field","onChangeManufacturer","allowedManufacturers","isOnlyForNewOrders","showTextNoPriceTax","refreshIndividualSearchLabel","individualSearchLabel","ManageCreditCardsCtrl","filteredCards","bandera","nombre","apellido","fnAfterListCards","fnAfterRemove","fnRemove","codUsuario","userGroupId","userLst","userGroupList","card","confirmRemove","setDefaultCard","fnAfterSetDefault","ManageCreditCardsModalCtrl","getNextTenYears","years","verifyEmail","EMAIL_REGEXP","isValidDate","cardExpirYear","cardExpirMonth","userLogged","address","isModal","franquias","months","billCity","getCountryUkey","billCountry","getStates","countryUkey","formManageCards","emailAddress","billCountryUkey","billStateUkey","billState","billCityUkey","formatName","formatNumber","ManageUsersFormCtrl","AccessGroupAPI","fnAfterGet","accessGroups","formManageUsers","ManageUsersListCtrl","accessGroupID","groupSlug","fnAfterListUsers","delete","getAccessGroupSlug","ManageUsersModalCtrl","$timeout","AccessControlAPI","fnEmitNotify","confirmCallback","discardCallback","fnAfterRequest","fnAfterUpdate","jsonUser","cellphone","trackBotElement","getElementsByName","trackBotPermissionName","checked","fnFinally","fnAfterListByGroupId","userPermissionList","permissions","fnListByGroupId","groupId","fnAfterListPermissions","slugList","permissionList","fnListPermissions","fnAfterGetUserPermissions","fnGetUserPermissions","fnToggleBetweenTabs","not","onTabSelect","tabName","tabSelected","onNext","onGoBack","$permissions","toArray","permissionID","onChecked","onClick","permissionId","is","onChange","ManageUsersResellerCtrl","$companySituation","fnAfterGetCompany","fnAfterListReseller","resellerLst","companyLst","resellerCount","listReseller","getById","onClickCNPJ","PowerBiCtrl","PowerBiFactory","PriceListCtrl","onSubmit","alternativeMail","alternativeEmails","manufacturerName","fileAlredyCreated","requestId","QuoteListCtrl","QuoteAPI","fnAfterListQuotes","totalItems","quoteList","quarters","emptyQuoteList","isRenewal","fnGetSummaryValues","totalQuoteValue","arr","quarter","pageSizeOptions","pageSize","replaceCommaByBarN","orderASC","ready","AcceptQuoteCalaCtrl","$modalQuote","$codSalesOrderAddress","fnAfterRevalidateQuote","fnAfterSendAcceptQuote","fnValidateQuote","isExpired","showQuoteExpiredModal","quote","salesAgent","frmQuote","frmResponsible","selectedContacts","contacts","isSelected","isDirectInvoice","quoteFiles","contact","endUserId","fnShowProductFamily","codProductFamily","getVrfHeaderAtributes","jsonAttributeValue","vrfs","entries","fnAfterGetQuote","EconomicGroupId","economicGroupId","isSbaInvalid","quotePayload","dollarTotal","nationalTotal","decision","fnFindTemporaryAddress","salesOrders","sale","salesOrderId","fnSetBillToAndAddress","fnSetEndUserAddress","vrfHeaderValues","vrf","attributeValue","vrfHeader","documentTypes","listContactCustomer","option","products","productFamilyName","showCodProductFamily","expirationDate","quoteVersion","showQuoteVersionModal","quoteId","fnAfterFindTemporaryAddress","listTemporaryQuoteAddress","typeId","Invoice","Undefined","billTo","getTemporaryAddress","EndUser","ShipTo","shipTo","addressTemporary","customer","taxId","tradeName","economicGroup","contactEmail","contactPhone","phone","contactName","contactId","addresses","countryName","salesOrder","addressTypeId","economicGroupName","area","fnSetQuotePayload","financialNotes","responsible","invoiceNote","clientNote","requestAddress","Id","QuoteId","ContactId","TypeId","fnAfterSendUpdateAddress","save","companyAddres","Customer","TaxId","TradeName","Address","Area","City","StateAbbreviation","stateAbbreviation","ContactName","ContactPhone","ContactEmail","CountryName","StateInscription","ZipCode","zipCode","salesOrderAddressId","_localPartials","codSalesOrderAddress","newPaymentCondition","invoiceAddress","quoteFile","sameEndUserAndBillingAddress","sameShipToAndBillingAddress","onGenerateSimulator","onRemoveQuoteFile","filekey","onAddDocuments","showQuoteAddDocumentsModal","addDocumentsCallback","onNewContact","showQuoteNewContactModal","newContactCallback","onSendAcceptQuote","onShowQuoteSendEmailModal","portalUser","showQuoteSendEmailModal","onShowQuoteTypeDocumentsModal","showQuoteTypeDocumentsModal","quoteTypeDocumentsCallback","lastCode","onShowQuoteTermsConditionsModal","showQuoteTermsConditionsModalCala","showQuoteTermsConditionsModalCCA","showQuoteTermsConditionsModalES","showQuoteTermsConditionsModalColombia","showQuoteTermsConditionsModalPeru","showQuoteTermsConditionsModalEquador","showQuoteTermsConditionsModalArgentina","showQuoteTermsConditionsModalChile","showQuoteTermsConditionsModal","quoteTermsConditionsCallback","onOpenComments","onRevalidateQuote","showUpdateCompanyModal","currentAddres","fnCallback","readOnlyFields","showVrfOrderModal","vrfLineValue","updateBillingAddressCallback","updateEndUserAddressCallback","updateDeliveryAddressCallback","setShipToSameAddressBilling","stopPropagation","setEndUserSameAddressBilling","AcceptQuoteCtrl","fnSetPayloadToCartCreate","quote_fields","product","sku","qty","fnAfterCreateCart","CspDetailsCtrl","OrderAPI","OrderNotFound","afterGetOrderDetails","partnumbers","taxes","titleUkey","Stage","cspDetails","getCellClass","closeNfeModal","OrderDetailsCtrl","ErrorOpenOrder","orderCode","OrderHistoryCtrl","$orderStatus","DownloadAPI","minDate","maxDate","fnFillStockStatusToWh","fnFillWithCustomPropertiesFromTrackit","invoicePrevision","billingDate","manufacturingFinish","shippedRealDate","shippedEstimatedDate","isManufacturingFinishEstimated","arrivalForecast","inCountryRealDate","inCountryEstimatedDate","isArrivalForecastEstimated","customsClearance","transitToStockRealDate","transitToStockEstimatedDate","isCustomsClearanceEstimated","lastMilePickup","lastMilePickupRealDate","actualLastMilePickupDate","lastMileDelivery","lastMileDeliveryRealDate","lastMileDeliveryEstimatedDate","onHand","onHandRealDate","onHandEstimatedDate","isOnHandEstimated","fnAfterGetOrderTracking","orderTrackerList","isEmptyTrackerList","each","pos","last","fnAfterListByFilter","showTrackingWarning","isEmptyHistoryList","orderHistoryList","orderVOList","fnApplyFilter","fnMountFilter","statusCode","codEndUser","isDateEmpty","isHardware","inTransit","isMissingRealOnHand","isRealOnHand","isRealInCountry","isRealTransitToStock","isMissingRealInCountry","isMissingTransitDates","isIntangible","today","orderStatusList","trackitEnabledErps","onOpenCommentsModal","remarks","isEmptyList","openVendors","vendorList","report","sendEmail","getInfo","delayReportedAt","delayReportedBy","isDelayed","getLabel","onToggleButton","multivendors","onGetTracker","statusText","getSpanCls","isEstimated","getStepSpanCls","displayShippedDate","displayOnHandCheck","finalidade","isInternational","displayOnHandDate","displayInCountryCheck","displayInCountryDate","displayTransitToStockCheck","displayTransitToStockDate","displayInvoiceDate","isCiscoBR","shippedDate","displayStatus","getLastMileTracking","originPartnumber","showLastMileModal","displayCustomsClearance","OrderHistoryDetailCtrl","afterGetHistoryDetailSuccess","bindFeatures","afterGetHistoryDetailError","$main","$header","$list","lastScrollTop","marginTop","$remark","closest","reportDelay","isDelayedReported","OrderReport205Ctrl","rangeDateFilter","orderReport205List","scrollTarget","prop","scrollLeft","$th","$td","px","outerWidth","minWidth","formatDatePreview","afterGetOrderReport205","orderList","getOrderReport205","afterDownload","removeXlsFile","OrderTrackerCtrl","isRealDate","fillWithCustomProperties","customerOrder","actualPrevisionDate","originalPrevisionDate","afterGetOrderTracking","getOrderTracking","ResellerOrderCtrl","emptyOrdersList","fillOrderDate","fillOrderValue","orderCount","dateOrder","orderStatusLst","getNameStatusOrder","dateAccepted","dateOrderArr","classeTrocada","listPartNumbersByOv","modalComments","asc","formatDateAccepted","formatDeliveryDate","changeOrderStatus","changeOrderDate","minOrderDate","maxOrderDate","changeOrderValue","afterListOrders","formatStatusOrder","OrderValue","classe","dayDataCollapseFn","dayDataCollapse","selectTableRow","ov","comments","onCloseCommentsModal","SalesOrderLicenseCtrl","DownloadLicenseLogAPI","OrderLicenseAPI","fnSendEmail","licenseMail","fnAfterfnSendEmail","fillLicenseMail","license","downloadedBy","emailTo","vendorCode","quantity","downloadType","fnAfterListLicenses","hasCisco","hasCiscoSmartnet","noLicense","licenseHeaderList","licenseHeaderLst","showAllDownload","licenseItemLst","licenseIdentifier","fnMakeLicenseIdentifier","urlCiscoWelcomekit","urlCiscoSmartnet","licenseList","onDownloadLicense","tipoLicense","typeDistributionLicense","PO","po","codPO","codPONew","quoteNumber","quoteNumbers","onDownloadLicenseLote","downloadLicenseLogs","RmaCtrl","$compile","ProposalAPI","RmaAPI","rma","businessName","afterListVendors","codVendorFator","fnAfterSendRma","fnRedirectRoot","currentFileSize","limitSize","showClearAttachments","returnReasonSelected","productList","occurrenceList","returnReasonList","taxRefundList","totalSizeFiles","sendRma","frmRma","taxRefund","returnReason","occurrenceId","occurrenceSelected","occurrenceText","addProduct","frmProduct","delProduct","changeTemplate","queryVendor","vendorName","BillTo","ComissionedCompany","MultiCountryModalCtrl","onLogin","NoticeLoginModalCtrl","imageSrc","cadastroEmpresaAdditionalInfo","FIELDS_PATH","cadastroEmpresaCnpj","cadastroEmpresaComissionamento","cadastroEmpresaCondicaoPagamento","cadastroEmpresaCondicaoPagamentoArquivo","cadastroEmpresaCondicaoPagamentoCala","cadastroEmpresaCondicaoPagamentoArgentina","cadastroEmpresaCondicaoPagamentoChile","cadastroEmpresaContaBancaria","cadastroEmpresaContatosColEq","cadastroEmpresaContatos","cadastroEmpresaContatosCompras","cadastroEmpresaContatosContas","cadastroEmpresaContatosLogistica","cadastroEmpresaContatosPrincipal","cadastroEmpresaContatosNfe","cadastroEmpresaContribuinteIcms","cadastroEmpresaCuit","cadastroEmpresaDnb","cadastroEmpresaEnderecoBairro","cadastroEmpresaEnderecoCidade","cadastroEmpresaEnderecoCep","cadastroEmpresaEnderecoComplemento","cadastroEmpresaEnderecoCompleto","cadastroEmpresaEnderecoEstado","cadastroEmpresaEnderecoLogradouro","cadastroEmpresaEnderecoNumero","cadastroEmpresaEnderecoPais","cadastroEmpresaEnderecoPaisFixo","cadastroEmpresaEnderecoSuframa","cadastroEmpresaInscricaoEstadual","cadastroEmpresaInscricaoMunicipal","cadastroEmpresaIntranetType","cadastroEmpresaLineInterest","cadastroEmpresaLineInterestColEq","cadastroEmpresaLinhaInteresse","cadastroEmpresaNomeFantasia","cadastroEmpresaPossuiCnpjCadastrado","cadastroEmpresaPrazoNfe","cadastroEmpresaRazaoSocial","cadastroEmpresaRfc","cadastroEmpresaSalesTaxExempt","cadastroEmpresaSegmentoEmpresa","cadastroEmpresaSetor","cadastroEmpresaSimplesNacional","cadastroEmpresaSuportaRetencao","cadastroEmpresaTipoCliente","cadastroEmpresaTaxId","cadastroEmpresaTipoEmpresa","cadastroEmpresaTiposPessoasChile","cadastroEmpresaTiposPessoasColombia","cadastroEmpresaTiposPessoasPeru","cadastroEmpresaTiposPessoasEquador","cadastroEmpresaUploadAtaAutoridades","cadastroEmpresaUploadBankStatements","cadastroEmpresaUploadBankingCommercialsReferences","cadastroEmpresaUploadChamberOfCommerceAndCertificate","cadastroEmpresaUploadCertificadoConstituicao","cadastroEmpresaUploadCommercialReferences","cadastroEmpresaUploadCommercialReferencesTwoFiles","cadastroEmpresaUploadContratoSocial","cadastroEmpresaUploadDni","cadastroEmpresaUploadSri","cadastroEmpresaUploadDeclaracaoImposto","cadastroEmpresaUploadFinancialStatements","cadastroEmpresaUploadFinancialStatementsCurrentYear","cadastroEmpresaUploadFinancialStatementsLastYear","cadastroEmpresaUploadIgv","cadastroEmpresaUploadInscricaoImpostos","cadastroEmpresaUploadLegalRepresentativeId","cadastroEmpresaUploadLicencaFuncionamento","cadastroEmpresaUploadEscriturasEmpresa","cadastroEmpresaUploadEstadosFinanceirosAno","cadastroEmpresaUploadIdentificacaoFiscal","cadastroEmpresaUploadCopiaIdRepresentante","cadastroEmpresaUploadCertificadoResidente","cadastroEmpresaUploadOtherFiles","cadastroEmpresaUploadSingleDocument","cadastroEmpresaUploadCertificateShareholder","cadastroEmpresaUploadSingleTaxRegistration","cadastroEmpresaVendedorWestcon","cadastroEmpresaWebSite","cadastroAcionista","cadastroNameRepresentant","cadastroEmailRepresentant","cadastroQuantidadeSolicitadaUsd","cadastroEmpresaModalAvisoContato","cadastroEmpresaModalCuit","cadastroEmpresaModalError","cadastroEmpresaModalSucesso","cadastroEmpresaModalTerm","cadastroEmpresaRodape","showModalTerm","cadastroEmpresaTopo","myValidator","$validators","$pristine","$isEmpty","myValidatorMessage","myValidatorPassword","myValidatorLogin","myOnlyNumber","_formatValue","myMaskNumber","myForceBind","priority","arrIgnoredFields","ignore","captcha","precadastro","precadastroArgentina","precadastroBrasil","precadastroCala","precadastroChile","precadastroColombia","precadastroMexico","precadastroPeru","precadastroEquador","cuitValidator","elm","modelValue","viewValue","isValidCuit","ccValidator","isValidCc","nitValidator","isValidNit","rutValidator","isValidRut","diValidator","isValidDi","rucValidator","rucValidatorEquador","isValidRucEquador","rfcValidator","isValidRFC","cnpjValidator","isValidCnpj","acum","digits","cc","nit","numbers","di","rut","rfc","aceptarGenerico","re","validado","soma","resto","numeros","multiplicador1","multiplicador2","GetRegistryUrl","keepContacts","fileError","cuitError","percentage","newQty","refreshQty","Nome","Nacionalidade","Aniversario","TipoSocial","InformacaoAdicional","invoiceMenu","enduserSummary","enduserFilter","enduserForm","enduserTable","createBatch","createBatchForm","createBatchTable","batchFilter","batchForm","batchTable","resellerFilter","resellerTable","sendReceiptSuccess","notice","BoletoModalCtrl","formatNossoNumero","noDigit","closeBoletoModal","CommissionBatchMaxDateNoticeArgentinaModalCtrl","CommissionBatchMaxDateNoticeColombiaModalCtrl","CommissionBatchMaxDateNoticeModalCtrl","CommissionBatchSuccessCalaArgentinaModalCtrl","CommissionBatchSuccessModalCtrl","DetalhesNfeModalCtrl","LotesComissaoColombiaMessageModalCtrl","NoticeModalCtrl","PayNowModalCtrl","acrescimoPercent","recalculateValue","SendReceiptModalCtrl","invoiceNumberOnly","SendReceiptSuccessModalCtrl","formNewUser","formUpdateUser","sidebarManageUsers","passwordValidator","proposalMenu","renewalProposalSummary","modalPartials","showQuoteFeedbackErrorModal","QuoteAddDocumentsModalCtrl","documentType","filename","filetitle","filetype","codCategory","filecategory","nameBR","filebase64","QuoteExpiredModalCtrl","QuoteFeedbackErrorModalCtrl","QuoteNewContactModalCtrl","customers","uniqBy","onAddContact","QuoteSendEmailModalCtrl","fnAfterSendQuoteEmail","emails","onSendQuoteEmail","QuoteVersionModalCtrl","UpdateCompanyCtrl","neighborhood","uf","cep","saveTemporaryQuoteAddress","selectedReseller","selectedContact","IsTaxpayer","isTaxpayer","CountryCode","countryCode","addressId","companyResponse","selectedEconomicGroup","getAddress","getContact","getResellerFromEconomicIdAutoComplete","companyCodeId","resellers","searchType","economicsGroups","getResellerForAutoComplete","searchText","resellerPromise","$promise","onSelectedReseller","getEconomicGroupForAutoComplete","economicGroupPromise","onSelectedEconomicGroup","onSelectedContact","VrfOrderModalCtrl","orderFilter","orderReportTableTbody","orderReportTableThead","orderTrackerTableTbody","orderTrackerTableThead","DelayedOrderModalCtrl","lastMileTracking","comment","LastMileModalCtrl","attachmentGrid","productGridDefective","productGridFaulty","productGridMissing","productGridReturn","buttonClearAttachment","defectFound","partNumber","purchaseInvoice","serialNumber","rmaQuantity","testsAlreadyPerformed","additionalInfo","billAgain","defectiveProduct","faultyProduct","missingProduct","returnOfPurchase","NavBarCtrl","redirectToCloudSolv","getTranslations","tooltip","$templateCache","put"],"mappings":"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","file":"scripts/app.js","sourcesContent":["/*\r\nCryptoJS v3.1.2\r\ncode.google.com/p/crypto-js\r\n(c) 2009-2013 by Jeff Mott. All rights reserved.\r\ncode.google.com/p/crypto-js/wiki/License\r\n*/\r\nvar CryptoJS=CryptoJS||function(u,p){var d={},l=d.lib={},s=function(){},t=l.Base={extend:function(a){s.prototype=this;var c=new s;a&&c.mixIn(a);c.hasOwnProperty(\"init\")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty(\"toString\")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},\r\nr=l.WordArray=t.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=p?c:4*a.length},toString:function(a){return(a||v).stringify(this)},concat:function(a){var c=this.words,e=a.words,j=this.sigBytes;a=a.sigBytes;this.clamp();if(j%4)for(var k=0;k>>2]|=(e[k>>>2]>>>24-8*(k%4)&255)<<24-8*((j+k)%4);else if(65535>>2]=e[k>>>2];else c.push.apply(c,e);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<<\r\n32-8*(c%4);a.length=u.ceil(c/4)},clone:function(){var a=t.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],e=0;e>>2]>>>24-8*(j%4)&255;e.push((k>>>4).toString(16));e.push((k&15).toString(16))}return e.join(\"\")},parse:function(a){for(var c=a.length,e=[],j=0;j>>3]|=parseInt(a.substr(j,\r\n2),16)<<24-4*(j%8);return new r.init(e,c/2)}},b=w.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var e=[],j=0;j>>2]>>>24-8*(j%4)&255));return e.join(\"\")},parse:function(a){for(var c=a.length,e=[],j=0;j>>2]|=(a.charCodeAt(j)&255)<<24-8*(j%4);return new r.init(e,c)}},x=w.Utf8={stringify:function(a){try{return decodeURIComponent(escape(b.stringify(a)))}catch(c){throw Error(\"Malformed UTF-8 data\");}},parse:function(a){return b.parse(unescape(encodeURIComponent(a)))}},\r\nq=l.BufferedBlockAlgorithm=t.extend({reset:function(){this._data=new r.init;this._nDataBytes=0},_append:function(a){\"string\"==typeof a&&(a=x.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,e=c.words,j=c.sigBytes,k=this.blockSize,b=j/(4*k),b=a?u.ceil(b):u.max((b|0)-this._minBufferSize,0);a=b*k;j=u.min(4*a,j);if(a){for(var q=0;q>>2]>>>24-8*(r%4)&255)<<16|(l[r+1>>>2]>>>24-8*((r+1)%4)&255)<<8|l[r+2>>>2]>>>24-8*((r+2)%4)&255,v=0;4>v&&r+0.75*v>>6*(3-v)&63));if(l=t.charAt(64))for(;d.length%4;)d.push(l);return d.join(\"\")},parse:function(d){var l=d.length,s=this._map,t=s.charAt(64);t&&(t=d.indexOf(t),-1!=t&&(l=t));for(var t=[],r=0,w=0;w<\r\nl;w++)if(w%4){var v=s.indexOf(d.charAt(w-1))<<2*(w%4),b=s.indexOf(d.charAt(w))>>>6-2*(w%4);t[r>>>2]|=(v|b)<<24-8*(r%4);r++}return p.create(t,r)},_map:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"}})();\r\n(function(u){function p(b,n,a,c,e,j,k){b=b+(n&a|~n&c)+e+k;return(b<>>32-j)+n}function d(b,n,a,c,e,j,k){b=b+(n&c|a&~c)+e+k;return(b<>>32-j)+n}function l(b,n,a,c,e,j,k){b=b+(n^a^c)+e+k;return(b<>>32-j)+n}function s(b,n,a,c,e,j,k){b=b+(a^(n|~c))+e+k;return(b<>>32-j)+n}for(var t=CryptoJS,r=t.lib,w=r.WordArray,v=r.Hasher,r=t.algo,b=[],x=0;64>x;x++)b[x]=4294967296*u.abs(u.sin(x+1))|0;r=r.MD5=v.extend({_doReset:function(){this._hash=new w.init([1732584193,4023233417,2562383102,271733878])},\r\n_doProcessBlock:function(q,n){for(var a=0;16>a;a++){var c=n+a,e=q[c];q[c]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360}var a=this._hash.words,c=q[n+0],e=q[n+1],j=q[n+2],k=q[n+3],z=q[n+4],r=q[n+5],t=q[n+6],w=q[n+7],v=q[n+8],A=q[n+9],B=q[n+10],C=q[n+11],u=q[n+12],D=q[n+13],E=q[n+14],x=q[n+15],f=a[0],m=a[1],g=a[2],h=a[3],f=p(f,m,g,h,c,7,b[0]),h=p(h,f,m,g,e,12,b[1]),g=p(g,h,f,m,j,17,b[2]),m=p(m,g,h,f,k,22,b[3]),f=p(f,m,g,h,z,7,b[4]),h=p(h,f,m,g,r,12,b[5]),g=p(g,h,f,m,t,17,b[6]),m=p(m,g,h,f,w,22,b[7]),\r\nf=p(f,m,g,h,v,7,b[8]),h=p(h,f,m,g,A,12,b[9]),g=p(g,h,f,m,B,17,b[10]),m=p(m,g,h,f,C,22,b[11]),f=p(f,m,g,h,u,7,b[12]),h=p(h,f,m,g,D,12,b[13]),g=p(g,h,f,m,E,17,b[14]),m=p(m,g,h,f,x,22,b[15]),f=d(f,m,g,h,e,5,b[16]),h=d(h,f,m,g,t,9,b[17]),g=d(g,h,f,m,C,14,b[18]),m=d(m,g,h,f,c,20,b[19]),f=d(f,m,g,h,r,5,b[20]),h=d(h,f,m,g,B,9,b[21]),g=d(g,h,f,m,x,14,b[22]),m=d(m,g,h,f,z,20,b[23]),f=d(f,m,g,h,A,5,b[24]),h=d(h,f,m,g,E,9,b[25]),g=d(g,h,f,m,k,14,b[26]),m=d(m,g,h,f,v,20,b[27]),f=d(f,m,g,h,D,5,b[28]),h=d(h,f,\r\nm,g,j,9,b[29]),g=d(g,h,f,m,w,14,b[30]),m=d(m,g,h,f,u,20,b[31]),f=l(f,m,g,h,r,4,b[32]),h=l(h,f,m,g,v,11,b[33]),g=l(g,h,f,m,C,16,b[34]),m=l(m,g,h,f,E,23,b[35]),f=l(f,m,g,h,e,4,b[36]),h=l(h,f,m,g,z,11,b[37]),g=l(g,h,f,m,w,16,b[38]),m=l(m,g,h,f,B,23,b[39]),f=l(f,m,g,h,D,4,b[40]),h=l(h,f,m,g,c,11,b[41]),g=l(g,h,f,m,k,16,b[42]),m=l(m,g,h,f,t,23,b[43]),f=l(f,m,g,h,A,4,b[44]),h=l(h,f,m,g,u,11,b[45]),g=l(g,h,f,m,x,16,b[46]),m=l(m,g,h,f,j,23,b[47]),f=s(f,m,g,h,c,6,b[48]),h=s(h,f,m,g,w,10,b[49]),g=s(g,h,f,m,\r\nE,15,b[50]),m=s(m,g,h,f,r,21,b[51]),f=s(f,m,g,h,u,6,b[52]),h=s(h,f,m,g,k,10,b[53]),g=s(g,h,f,m,B,15,b[54]),m=s(m,g,h,f,e,21,b[55]),f=s(f,m,g,h,v,6,b[56]),h=s(h,f,m,g,x,10,b[57]),g=s(g,h,f,m,t,15,b[58]),m=s(m,g,h,f,D,21,b[59]),f=s(f,m,g,h,z,6,b[60]),h=s(h,f,m,g,C,10,b[61]),g=s(g,h,f,m,j,15,b[62]),m=s(m,g,h,f,A,21,b[63]);a[0]=a[0]+f|0;a[1]=a[1]+m|0;a[2]=a[2]+g|0;a[3]=a[3]+h|0},_doFinalize:function(){var b=this._data,n=b.words,a=8*this._nDataBytes,c=8*b.sigBytes;n[c>>>5]|=128<<24-c%32;var e=u.floor(a/\r\n4294967296);n[(c+64>>>9<<4)+15]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360;n[(c+64>>>9<<4)+14]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360;b.sigBytes=4*(n.length+1);this._process();b=this._hash;n=b.words;for(a=0;4>a;a++)c=n[a],n[a]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360;return b},clone:function(){var b=v.clone.call(this);b._hash=this._hash.clone();return b}});t.MD5=v._createHelper(r);t.HmacMD5=v._createHmacHelper(r)})(Math);\r\n(function(){var u=CryptoJS,p=u.lib,d=p.Base,l=p.WordArray,p=u.algo,s=p.EvpKDF=d.extend({cfg:d.extend({keySize:4,hasher:p.MD5,iterations:1}),init:function(d){this.cfg=this.cfg.extend(d)},compute:function(d,r){for(var p=this.cfg,s=p.hasher.create(),b=l.create(),u=b.words,q=p.keySize,p=p.iterations;u.length>>2]&255}};d.BlockCipher=v.extend({cfg:v.cfg.extend({mode:b,padding:q}),reset:function(){v.reset.call(this);var a=this.cfg,b=a.iv,a=a.mode;if(this._xformMode==this._ENC_XFORM_MODE)var c=a.createEncryptor;else c=a.createDecryptor,this._minBufferSize=1;this._mode=c.call(a,\r\nthis,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var a=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var b=this._process(!0)}else b=this._process(!0),a.unpad(b);return b},blockSize:4});var n=d.CipherParams=l.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),b=(p.format={}).OpenSSL={stringify:function(a){var b=a.ciphertext;a=a.salt;return(a?s.create([1398893684,\r\n1701076831]).concat(a).concat(b):b).toString(r)},parse:function(a){a=r.parse(a);var b=a.words;if(1398893684==b[0]&&1701076831==b[1]){var c=s.create(b.slice(2,4));b.splice(0,4);a.sigBytes-=16}return n.create({ciphertext:a,salt:c})}},a=d.SerializableCipher=l.extend({cfg:l.extend({format:b}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);var l=a.createEncryptor(c,d);b=l.finalize(b);l=l.cfg;return n.create({ciphertext:b,key:c,iv:l.iv,algorithm:a,mode:l.mode,padding:l.padding,blockSize:a.blockSize,formatter:d.format})},\r\ndecrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){return\"string\"==typeof a?b.parse(a,this):a}}),p=(p.kdf={}).OpenSSL={execute:function(a,b,c,d){d||(d=s.random(8));a=w.create({keySize:b+c}).compute(a,d);c=s.create(a.words.slice(b),4*c);a.sigBytes=4*b;return n.create({key:a,iv:c,salt:d})}},c=d.PasswordBasedCipher=a.extend({cfg:a.cfg.extend({kdf:p}),encrypt:function(b,c,d,l){l=this.cfg.extend(l);d=l.kdf.execute(d,\r\nb.keySize,b.ivSize);l.iv=d.iv;b=a.encrypt.call(this,b,c,d.key,l);b.mixIn(d);return b},decrypt:function(b,c,d,l){l=this.cfg.extend(l);c=this._parse(c,l.format);d=l.kdf.execute(d,b.keySize,b.ivSize,c.salt);l.iv=d.iv;return a.decrypt.call(this,b,c,d.key,l)}})}();\r\n(function(){for(var u=CryptoJS,p=u.lib.BlockCipher,d=u.algo,l=[],s=[],t=[],r=[],w=[],v=[],b=[],x=[],q=[],n=[],a=[],c=0;256>c;c++)a[c]=128>c?c<<1:c<<1^283;for(var e=0,j=0,c=0;256>c;c++){var k=j^j<<1^j<<2^j<<3^j<<4,k=k>>>8^k&255^99;l[e]=k;s[k]=e;var z=a[e],F=a[z],G=a[F],y=257*a[k]^16843008*k;t[e]=y<<24|y>>>8;r[e]=y<<16|y>>>16;w[e]=y<<8|y>>>24;v[e]=y;y=16843009*G^65537*F^257*z^16843008*e;b[k]=y<<24|y>>>8;x[k]=y<<16|y>>>16;q[k]=y<<8|y>>>24;n[k]=y;e?(e=z^a[a[a[G^z]]],j^=a[a[j]]):e=j=1}var H=[0,1,2,4,8,\r\n16,32,64,128,27,54],d=d.AES=p.extend({_doReset:function(){for(var a=this._key,c=a.words,d=a.sigBytes/4,a=4*((this._nRounds=d+6)+1),e=this._keySchedule=[],j=0;j>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255]):(k=k<<8|k>>>24,k=l[k>>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255],k^=H[j/d|0]<<24);e[j]=e[j-d]^k}c=this._invKeySchedule=[];for(d=0;dd||4>=j?k:b[l[k>>>24]]^x[l[k>>>16&255]]^q[l[k>>>\r\n8&255]]^n[l[k&255]]},encryptBlock:function(a,b){this._doCryptBlock(a,b,this._keySchedule,t,r,w,v,l)},decryptBlock:function(a,c){var d=a[c+1];a[c+1]=a[c+3];a[c+3]=d;this._doCryptBlock(a,c,this._invKeySchedule,b,x,q,n,s);d=a[c+1];a[c+1]=a[c+3];a[c+3]=d},_doCryptBlock:function(a,b,c,d,e,j,l,f){for(var m=this._nRounds,g=a[b]^c[0],h=a[b+1]^c[1],k=a[b+2]^c[2],n=a[b+3]^c[3],p=4,r=1;r>>24]^e[h>>>16&255]^j[k>>>8&255]^l[n&255]^c[p++],s=d[h>>>24]^e[k>>>16&255]^j[n>>>8&255]^l[g&255]^c[p++],t=\r\nd[k>>>24]^e[n>>>16&255]^j[g>>>8&255]^l[h&255]^c[p++],n=d[n>>>24]^e[g>>>16&255]^j[h>>>8&255]^l[k&255]^c[p++],g=q,h=s,k=t;q=(f[g>>>24]<<24|f[h>>>16&255]<<16|f[k>>>8&255]<<8|f[n&255])^c[p++];s=(f[h>>>24]<<24|f[k>>>16&255]<<16|f[n>>>8&255]<<8|f[g&255])^c[p++];t=(f[k>>>24]<<24|f[n>>>16&255]<<16|f[g>>>8&255]<<8|f[h&255])^c[p++];n=(f[n>>>24]<<24|f[g>>>16&255]<<16|f[h>>>8&255]<<8|f[k&255])^c[p++];a[b]=q;a[b+1]=s;a[b+2]=t;a[b+3]=n},keySize:8});u.AES=p._createHelper(d)})();\n(function () {\r\n \"use strict\";\r\n\r\n angular.module(\"my.pages.online-stock\", [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig ($routeProvider) {\r\n\r\n $routeProvider\r\n .when(\"/online-stock\", {\r\n templateUrl: \"app/pages/online-stock/partials/stock/index.html\",\r\n controller: \"OnlineStockCtrl\",\r\n allowGuest: false,\r\n arrRegions: false,\r\n arrPermissions: [ \"Quote.WithStock\" ]\r\n });\r\n }\r\n})();\r\n\n(function () {\r\n \"use strict\";\r\n\r\n angular.module(\"my.pages.manage-users\", [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig ($routeProvider) {\r\n\r\n $routeProvider\r\n .when(\"/users/form\", {\r\n templateUrl: \"app/pages/manage-users/partials/form/index.html\",\r\n controller: \"ManageUsersFormCtrl\",\r\n allowGuest: false,\r\n arrRegions: false,\r\n arrPermissions: [ \"Users.ChangeData\", \"Users.MyData\" ]\r\n })\r\n .when(\"/users/list\", {\r\n templateUrl: \"app/pages/manage-users/partials/list/index.html\",\r\n controller: \"ManageUsersListCtrl\",\r\n allowGuest: false,\r\n arrRegions: false,\r\n arrPermissions: [ \"Users.List\" ]\r\n })\r\n .when(\"/users/reseller\", {\r\n templateUrl: \"app/pages/manage-users/partials/reseller/index.html\",\r\n controller: \"ManageUsersResellerCtrl\",\r\n allowGuest: false,\r\n arrRegions: false,\r\n arrPermissions: [ \"Reseller.Adresses\" ]\r\n })\r\n .when(\"/users/credit-cards\", {\r\n templateUrl: \"app/pages/manage-users/partials/credit-cards/index.html\",\r\n controller: \"ManageCreditCardsCtrl\",\r\n allowGuest: false,\r\n arrRegions: false,\r\n arrPermissions: [ \"Reseller.Adresses\" ]\r\n });\r\n }\r\n})();\r\n\n(function () {\r\n \"use strict\";\r\n\r\n angular.module(\"my.pages.powerbi\", [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig ($routeProvider) {\r\n }\r\n})();\r\n\n(function () {\r\n \"use strict\";\r\n\r\n angular.module(\"my.pages.price-list\", [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig ($routeProvider) {\r\n\r\n $routeProvider\r\n .when(\"/price-list\", {\r\n templateUrl: \"app/pages/price-list/partials/lists/index.html\",\r\n controller: \"PriceListCtrl\",\r\n allowGuest: false,\r\n arrRegions: [ 1 ],\r\n arrPermissions: [ \"Quote.PriceList\" ]\r\n })\r\n }\r\n})();\r\n\n(function () {\r\n \"use strict\";\r\n\r\n angular.module(\"my.pages.proposal\", [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig ($routeProvider) {\r\n\r\n $routeProvider\r\n .when(\"/proposal/business\", {\r\n templateUrl: \"app/pages/proposal/partials/business-proposal.html\",\r\n controller: \"QuoteListCtrl\",\r\n allowGuest: false,\r\n arrRegions: false,\r\n arrPermissions: [ \"Orders.ListProposal\" ]\r\n })\r\n .when(\"/proposal/renewal\", {\r\n templateUrl: \"app/pages/proposal/partials/renewal-proposal.html\",\r\n controller: \"QuoteListCtrl\",\r\n allowGuest: false,\r\n arrRegions: false,\r\n arrPermissions: [ \"Orders.RenewalProposal\" ]\r\n });\r\n }\r\n})();\r\n\n(function () {\r\n \"use strict\";\r\n\r\n angular.module(\"my.pages.quote\", [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig ($routeProvider) {\r\n\r\n $routeProvider\r\n .when(\"/quote/:quoteId/version/:version\", {\r\n templateUrl: \"app/pages/quote/partials/accept-quote.html\",\r\n controller: \"AcceptQuoteCtrl\",\r\n allowGuest: false,\r\n arrRegions: false,\r\n arrPermissions: [ \"Orders.Accept\" ]\r\n })\r\n .when(\"/quote/cala/:quoteId/version/:version\", {\r\n templateUrl: \"app/pages/quote/partials/cala/index.html\",\r\n controller: \"AcceptQuoteCalaCtrl\",\r\n allowGuest: false,\r\n arrRegions: false,\r\n arrPermissions: [ \"Orders.Accept\" ]\r\n })\r\n .when(\"/quote/:orderCodes\", {\r\n templateUrl: \"app/pages/quote/partials/accept-quote-conclusion.html\",\r\n controller: function ($scope, $routeParams) {\r\n $scope.orderCodes = $routeParams.orderCodes;\r\n },\r\n allowGuest: false,\r\n arrRegions: false,\r\n arrPermissions: [ \"Orders.Accept\" ]\r\n });\r\n }\r\n})();\r\n\n(function () {\r\n \"use strict\";\r\n\r\n angular.module(\"my.pages.reseller-order\", [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig ($routeProvider) {\r\n\r\n $routeProvider\r\n .when(\"/reseller-order/history\", {\r\n templateUrl: \"app/pages/reseller-order/partials/history/index.html\",\r\n controller: \"OrderHistoryCtrl\",\r\n allowGuest: false,\r\n arrRegions: false,\r\n arrPermissions: [ \"Orders.ResellerOrders\" ]\r\n })\r\n .when(\"/reseller-order/list\", {\r\n templateUrl: \"app/pages/reseller-order/partials/orders/index.html\",\r\n controller: \"ResellerOrderCtrl\",\r\n allowGuest: false,\r\n arrRegions: false,\r\n arrPermissions: [ \"Orders.ResellerOrders\" ]\r\n })\r\n .when(\"/reseller-order/detail\", {\r\n templateUrl: \"app/pages/reseller-order/partials/detail/index.html\",\r\n controller: \"OrderDetailsCtrl\",\r\n allowGuest: false,\r\n arrRegions: false,\r\n arrPermissions: [ \"Orders.Details\" ]\r\n })\r\n .when(\"/reseller-order/cspdetail\", {\r\n templateUrl: \"app/pages/reseller-order/partials/detail/index.html\",\r\n controller: \"CspDetailsCtrl\",\r\n allowGuest: false,\r\n arrRegions: false,\r\n arrPermissions: [ \"Orders.Details\" ]\r\n })\r\n .when(\"/reseller-order/report205\", {\r\n templateUrl: \"app/pages/reseller-order/partials/report205/index.html\",\r\n controller: \"OrderReport205Ctrl\",\r\n allowGuest: false,\r\n arrRegions: [2,3,4,5,6,7,8],\r\n arrPermissions: [ \"Orders.ResellerOrders\" ]\r\n })\r\n .when(\"/reseller-order/tracking\", {\r\n templateUrl: \"app/pages/reseller-order/partials/tracking/index.html\",\r\n controller: \"OrderTrackerCtrl\",\r\n allowGuest: false,\r\n arrRegions: [ 1 ],\r\n arrPermissions: [ \"Orders.ResellerOrders\" ]\r\n })\r\n .when(\"/reseller-order/license\", {\r\n templateUrl: \"app/pages/reseller-order/partials/license/index.html\",\r\n controller: \"SalesOrderLicenseCtrl\",\r\n allowGuest: false,\r\n arrRegions: false,\r\n arrPermissions: [ \"Orders.LicenseDownload\" ]\r\n })\r\n .when(\"/reseller-order/history/:orderCode/detail\", {\r\n templateUrl: \"app/pages/reseller-order/partials/history/detail.html\",\r\n controller: \"OrderHistoryDetailCtrl\",\r\n allowGuest: true,\r\n arrRegions: false,\r\n contentOnly: true,\r\n arrPermissions: [ \"\" ]\r\n });\r\n }\r\n})();\r\n\n(function () {\r\n \"use strict\";\r\n\r\n angular.module(\"my.pages.rma\", [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig ($routeProvider) {\r\n\r\n $routeProvider\r\n .when(\"/rma\", {\r\n templateUrl: \"app/pages/rma/partials/index.html\",\r\n controller: \"RmaCtrl\",\r\n allowGuest: false,\r\n arrRegions: [ 1 ],\r\n arrPermissions: [ \"ContactUs.RMAForm\" ]\r\n })\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.factories', []);\r\n \r\n})();\r\n\n(function () {\r\n 'use strict';\r\n \r\n angular.module('my.pages', [\r\n 'my.pages.auth',\r\n 'my.pages.business-analytics',\r\n 'my.pages.company-registry',\r\n 'my.pages.contact-us',\r\n 'my.pages.dashboard',\r\n 'my.pages.invoice',\r\n 'my.pages.manage-users',\r\n 'my.pages.online-stock',\r\n 'my.pages.powerbi',\r\n 'my.pages.price-list',\r\n 'my.pages.proposal',\r\n 'my.pages.quote',\r\n 'my.pages.reseller-order',\r\n 'my.pages.rma',\r\n 'my.pages.active-contracts'\r\n ])\r\n})();\r\n\nvar protocol = document.location.protocol;\r\nvar hostname = document.location.hostname;\r\nvar baseUrlSrc = \"\";\r\nvar baseApi = \"\";\r\nvar baseMy1 = \"\"; \r\n\r\nENV = \"LOCAL\";\r\n\r\nswitch (hostname) {\r\n \r\n case 'localhost':\r\n baseUrlSrc = '/';\r\n baseApi = protocol+\"//localhost:56666/\";\r\n baseMy1 = protocol+\"//wdcinnoqa.synnex.org:8070/\";\r\n ppCompanyUrl = \"http://wdcinnoqa.synnex.org:6262/#/\";\r\n cisUsApiUrl = \"https://us-dev-mycis.synnex.org/gateway/\";\r\n cisUsApiToken = \"McjKoo11QxeQTAp5jbBkONgIvItIuHWa\";\r\n break;\r\n\r\n case 'wdcinnodev01':\r\n ENV = \"DEV\";\r\n baseUrlSrc = '/';\r\n baseApi = protocol+\"//wdcinnodev01.synnex.org:8081/\";\r\n baseMy1 = protocol+\"//wdcinnoqa.synnex.org:8070/\";\r\n ppCompanyUrl = \"http://wdcinnoqa.synnex.org:6262/#/\";\r\n cisUsApiUrl = \"https://us-dev-mycis.synnex.org/gateway/\";\r\n cisUsApiToken = \"McjKoo11QxeQTAp5jbBkONgIvItIuHWa\";\r\n break;\r\n\r\n case 'wdcinnoqa.synnex.org':\r\n case 'wdcinnoqa':\r\n ENV = \"QA\";\r\n baseUrlSrc = '/';\r\n baseApi = protocol+\"//wdcinnoqa.synnex.org:8081/\";\r\n baseMy1 = protocol+\"//wdcinnoqa.synnex.org:8070/\";\r\n ppCompanyUrl = \"http://wdcinnoqa.synnex.org:6262/#/\";\r\n cisUsApiUrl = \"https://us-dev-mycis.synnex.org/gateway/\";\r\n cisUsApiToken = \"McjKoo11QxeQTAp5jbBkONgIvItIuHWa\";\r\n break;\r\n\r\n case 'wdcinnouat01.synnex.org':\r\n case 'wdcinnouat01':\r\n case '10.5.202.88':\r\n ENV = \"UAT\";\r\n baseUrlSrc = '/';\r\n baseApi = protocol+\"//wdcinnouat01.synnex.org:8081/\";\r\n baseMy1 = protocol+\"//wdcinnouat01.synnex.org:8070/\";\r\n ppCompanyUrl = \"https://wdcinnouat01.synnex.org:6262/#/\";\r\n cisUsApiUrl = \"https://us-uat-mycis.synnex.org/gateway/\";\r\n cisUsApiToken = \"McjKoo11QxeQTAp5jbBkONgIvItIuHWa\";\r\n break;\r\n\r\n default:\r\n ENV = \"PROD\";\r\n baseUrlSrc = '/';\r\n baseApi = protocol+\"//pp-api.synnex.com/\";\r\n baseMy1 = protocol+\"//partnerportal.lac.tdsynnex.com/\";\r\n ppCompanyUrl = \"https://partnerportal.lac.tdsynnex.com/registro-brasil/#/\";\r\n cisUsApiUrl = \"https://mycis-us-p1.synnex.org/gateway/\";\r\n cisUsApiToken = \"u9uey5BytBRcLX7lcDXFIPnNQXsJQyGB\";\r\n break;\r\n}\r\n\r\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API', ['ngResource'])\r\n .service('PowerBiFactory', function ($resource, $rootScope) {\r\n\r\n var actions = {\r\n acquireToken: {\r\n method: 'GET',\r\n url: baseApi + \"powerbi\"\r\n }\r\n }\r\n\r\n return $resource(baseApi + 'powerbi', {}, actions);\r\n })\r\n .service('BusinessAnalyticsFactory', function ($resource, $rootScope) {\r\n\r\n var actions = {\r\n getDashboard: {\r\n method: 'GET',\r\n url: baseApi + \"BusinessAnalytics/GetDashboard\"\r\n }\r\n }\r\n\r\n return $resource(baseApi + 'powerbi', {}, actions);\r\n })\r\n .filter('range', function() {\r\n return function(items, property, min, max) {\r\n return items.filter(function(item){\r\n return item[property] >= min && item[property] <= max;\r\n });\r\n };\r\n })\r\n .filter('rangeDate', function() {\r\n return function(items, property, from, to) {\r\n\r\n return items.filter(function(item){\r\n \r\n from = from || -8640000000000000; //Min javascript date\r\n to = to || 8640000000000000; //Max javascript date\r\n\r\n if (!item[property]) return false;\r\n\r\n var dateFrom = new Date(from).getTime();\r\n var dateTo = new Date(to).getTime();\r\n\r\n var splited = item[property].replace(\"T\", \"-\").split(\"-\");\r\n var itemDate = new Date(splited[0], parseInt(splited[1]) - 1, splited[2]).getTime();\r\n\r\n return dateFrom <= itemDate && itemDate <= dateTo;\r\n\r\n });\r\n };\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.services', [])\r\n})();\r\n\n(function () {\r\n \"use strict\";\r\n\r\n angular.module(\"my.pages.active-contracts\", [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig ($routeProvider) {\r\n\r\n $routeProvider\r\n .when(\"/active-contracts\", {\r\n templateUrl: \"app/pages/active-contracts/partials/list/index.html\",\r\n controller: \"ActiveContractsCtrl\",\r\n allowGuest: false,\r\n arrRegions: false,\r\n arrPermissions: [ \"Quote.WithStock\" ]\r\n });\r\n }\r\n})();\r\n\n(function () {\r\n \"use strict\";\r\n\r\n angular.module(\"my.pages.auth\", [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig ($routeProvider) {\r\n\r\n $routeProvider\r\n .when(\"/auth/login\", {\r\n templateUrl: \"app/pages/auth/partials/login.html\",\r\n controller: \"AuthPageCtrl\",\r\n allowGuest: true,\r\n arrRegions: false,\r\n arrPermissions: [ \"Auth.Module\" ]\r\n })\r\n .when(\"/auth/login/:token\", {\r\n templateUrl: \"app/pages/auth/partials/login-accept-proposal.html\",\r\n controller: \"AuthAcceptProposalCtrl\",\r\n allowGuest: true,\r\n arrRegions: false,\r\n arrPermissions: [ \"Auth.Module\" ]\r\n })\r\n .when(\"/auth/login?referer=:referer\", {\r\n templateUrl: \"app/pages/auth/partials/login.html\",\r\n controller: \"AuthPageCtrl\",\r\n allowGuest: true,\r\n regions: false,\r\n module: \"Auth.Module\"\r\n })\r\n .when(\"/auth/logout\", {\r\n template: \" \",\r\n controller: \"AuthLogoutCtrl\",\r\n allowGuest: true,\r\n arrRegions: false,\r\n arrPermissions: [ \"Auth.Module\" ]\r\n })\r\n .when(\"/auth/expired\", {\r\n template: \" \",\r\n controller: \"AuthExpiredCtrl\",\r\n allowGuest: true,\r\n arrRegions: false,\r\n arrPermissions: [ \"Auth.Module\" ]\r\n })\r\n .when(\"/auth/recover-password/:token\", {\r\n templateUrl: \"app/pages/auth/partials/reset-password.html\",\r\n controller: \"ResetPasswordCtrl\",\r\n allowGuest: true,\r\n arrRegions: false,\r\n arrPermissions: [ \"Auth.Module\" ]\r\n })\r\n .when(\"/auth/welcome-password/:token\", {\r\n templateUrl: \"app/pages/auth/partials/welcome-password.html\",\r\n controller: \"ResetPasswordCtrl\",\r\n allowGuest: true,\r\n arrRegions: false,\r\n arrPermissions: [ \"Auth.Module\" ]\r\n })\r\n .when(\"/auth/lost-password\", {\r\n templateUrl: \"app/pages/auth/partials/forgot-password.html\",\r\n controller: \"AuthPageCtrl\",\r\n allowGuest: true,\r\n arrRegions: false,\r\n arrPermissions: [ \"Auth.Module\" ]\r\n })\r\n .when(\"/auth/mywestcon/:redirect/:token\", {\r\n template: \" \",\r\n controller: \"AuthMyWestconCtrl\",\r\n allowGuest: true,\r\n arrRegions: [ 1 ],\r\n arrPermissions: [ \"Auth.Module\" ]\r\n })\r\n .when(\"/auth/external\", {\r\n templateUrl: \"app/pages/auth/partials/redirect.html\",\r\n controller: \"AuthExternalLoginCtrl\",\r\n allowGuest: true,\r\n arrRegions: false,\r\n arrPermissions: [ \"Auth.Module\" ]\r\n });\r\n }\r\n})();\r\n\n(function () {\r\n \"use strict\";\r\n\r\n angular.module(\"my.pages.business-analytics\", [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig ($routeProvider) {\r\n\r\n $routeProvider\r\n .when(\"/business-analytics\", {\r\n templateUrl: \"app/pages/business-analytics/partials/index.html\",\r\n controller: \"BusinessAnalyticsCtrl\",\r\n allowGuest: false,\r\n arrRegions: false,\r\n arrPermissions: [ \"PBI.BusinessAnalytics\" ]\r\n });\r\n }\r\n})();\r\n\n(function () {\r\n \"use strict\";\r\n\r\n angular.module(\"my.pages.company-registry\", [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig ($routeProvider) {\r\n\r\n $routeProvider\r\n .when(\"/company-registry/new\", {\r\n templateUrl: \"app/pages/company-registry/partials/pre-registry/index.html\",\r\n controller: \"CompanyRegistryPreCtrl\",\r\n allowGuest: true,\r\n arrRegions: false,\r\n arrPermissions: [ \"Reseller.Registry\" ]\r\n })\r\n .when(\"/company-registry/brasil\", {\r\n templateUrl: \"app/pages/company-registry/partials/brasil/form.html\",\r\n controller: \"CompanyRegistryBrasilCtrl\",\r\n allowGuest: true,\r\n arrRegions: false,\r\n arrPermissions: [ \"Reseller.Registry\" ]\r\n })\r\n .when(\"/company-registry/argentina\", {\r\n templateUrl: \"app/pages/company-registry/partials/argentina/form.html\",\r\n controller: \"CompanyRegistryArgentinaCtrl\",\r\n allowGuest: true,\r\n arrRegions: false,\r\n arrPermissions: [ \"Reseller.Registry\" ]\r\n })\r\n .when(\"/company-registry/cala\", {\r\n templateUrl: \"app/pages/company-registry/partials/cala/form.html\",\r\n controller: \"CompanyRegistryCalaCtrl\",\r\n allowGuest: true,\r\n arrRegions: false,\r\n arrPermissions: [ \"Reseller.Registry\" ]\r\n })\r\n .when(\"/company-registry/chile\", {\r\n templateUrl: \"app/pages/company-registry/partials/chile/form.html\",\r\n controller: \"CompanyRegistryChileCtrl\",\r\n allowGuest: true,\r\n arrRegions: false,\r\n arrPermissions: [ \"Reseller.Registry\" ]\r\n })\r\n .when(\"/company-registry/colombia\", {\r\n templateUrl: \"app/pages/company-registry/partials/colombia/form.html\",\r\n controller: \"CompanyRegistryColombiaCtrl\",\r\n allowGuest: true,\r\n arrRegions: false,\r\n arrPermissions: [ \"Reseller.Registry\" ]\r\n })\r\n .when(\"/company-registry/peru\", {\r\n templateUrl: \"app/pages/company-registry/partials/peru/form.html\",\r\n controller: \"CompanyRegistryPeruCtrl\",\r\n allowGuest: true,\r\n arrRegions: false,\r\n arrPermissions: [ \"Reseller.Registry\" ]\r\n })\r\n .when(\"/company-registry/mexico\", {\r\n templateUrl: \"app/pages/company-registry/partials/mexico/form.html\",\r\n controller: \"CompanyRegistryMexicoCtrl\",\r\n allowGuest: true,\r\n arrRegions: false,\r\n arrPermissions: [ \"Reseller.Registry\" ]\r\n })\r\n .when(\"/company-registry/ecuador\", {\r\n templateUrl: \"app/pages/company-registry/partials/equador/form.html\",\r\n controller: \"CompanyRegistryEquadorCtrl\",\r\n allowGuest: true,\r\n arrRegions: false,\r\n arrPermissions: [ \"Reseller.Registry\" ]\r\n });\r\n }\r\n})();\r\n\n(function () {\r\n \"use strict\";\r\n\r\n angular.module(\"my.pages.contact-us\", [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig ($routeProvider) {\r\n \r\n $routeProvider\r\n .when(\"/contact-us\", {\r\n templateUrl: \"app/pages/contact-us/partials/contact-us/index.html\",\r\n controller: \"ContactUsCtrl\",\r\n allowGuest: true,\r\n arrRegions: false,\r\n arrPermissions: [ \"ContactUs.RegularForm\" ]\r\n })\r\n }\r\n})();\r\n\n(function () {\r\n \"use strict\";\r\n\r\n angular.module(\"my.pages.invoice\", [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig ($routeProvider) {\r\n\r\n $routeProvider\r\n .when(\"/invoice/reseller\", {\r\n templateUrl: \"app/pages/invoice/partials/reseller/index.html\",\r\n controller: \"ResellerInvoiceCtrl\",\r\n allowGuest: false,\r\n arrRegions: false,\r\n arrPermissions: [ \"Finances.ResellerTitles\" ]\r\n })\r\n .when(\"/invoice/enduser\", {\r\n templateUrl: \"app/pages/invoice/partials/enduser/index.html\",\r\n controller: \"EndUserInvoiceCtrl\",\r\n allowGuest: false,\r\n arrRegions: [ 1, 2, 4, 7 ],\r\n arrPermissions: [ \"Finances.EndUserTiltes\" ]\r\n })\r\n .when(\"/invoice/batch\", {\r\n templateUrl: \"app/pages/invoice/partials/batch/index.html\",\r\n controller: \"BatchInvoiceCtrl\",\r\n allowGuest: false,\r\n arrRegions: [ 1, 2, 4, 7 ],\r\n arrPermissions: [ \"Finances.ComissionBatch\" ]\r\n });\r\n }\r\n})();\r\n\n(function () {\r\n \"use strict\";\r\n\r\n angular.module(\"my.pages.dashboard\", [])\r\n .config(routeConfig);\r\n\r\n /** @ngInject */\r\n function routeConfig ($routeProvider) {\r\n\r\n $routeProvider\r\n .when(\"/cloud-solv\", {\r\n templateUrl: \"app/pages/dashboard/partials/bluesky-portal/index.html\",\r\n controller: \"BlueskyPortalCtrl\",\r\n allowGuest: false,\r\n arrRegions: [1, 2, 4, 5, 6, 7, 8],\r\n arrPermissions: [ \"Auth.Homepage\" ]\r\n })\r\n .when(\"/\", {\r\n templateUrl: \"app/pages/dashboard/partials/welcome/index.html\",\r\n controller: \"DashCtrl\",\r\n allowGuest: false,\r\n arrRegions: false,\r\n arrPermissions: [ \"Auth.Homepage\" ]\r\n });\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my', [\r\n 'ngAnimate',\r\n 'ngRoute',\r\n 'toastr',\r\n 'ngMaterial',\r\n 'my.API',\r\n 'my.factories',\r\n 'my.services',\r\n 'my.pages',\r\n 'pascalprecht.translate',\r\n 'tmh.dynamicLocale',\r\n 'rzModule',\r\n 'vcRecaptcha',\r\n 'ui.mask',\r\n 'ui.bootstrap',\r\n 'my.alert'\r\n ])\r\n .run(AppRun);\r\n /** @ngInject */\r\n function AppRun (\r\n $rootScope,\r\n $auth,\r\n $localeService,\r\n $location,\r\n $permission,\r\n $layout,\r\n $session,\r\n $sce,\r\n AuthAPI,\r\n MultiCountryModal\r\n ) {\r\n\r\n $rootScope.onLoading = function () {\r\n window.setTimeout(function () { $rootScope.loading = true }, 250);\r\n \r\n };\r\n\r\n $rootScope.back = function (evt) {\r\n if (evt) evt.preventDefault();\r\n window.history.go(-1);\r\n };\r\n\r\n $rootScope.isAuthPage = function (evt) {\r\n return $location.path().startsWith('/auth/');\r\n };\r\n\r\n $rootScope.currentYear = (new Date()).getFullYear();\r\n\r\n $rootScope.logout = $auth.logout;\r\n $rootScope.$localeService = $localeService;\r\n\r\n $rootScope.isEmpty = _.isEmpty;\r\n $rootScope.includes = _.includes;\r\n\r\n $rootScope.ipAddress = \"Ip not assigned.\";\r\n \r\n $rootScope.isAllowed = $permission.isAllowed;\r\n $rootScope.isAllowedRegionSpecific = $permission.isAllowedRegionSpecific;\r\n $rootScope.isAllowedBatch = $permission.isAllowedBatch;\r\n\r\n $localeService.setLocale($session.get('locale'));\r\n\r\n // INNO-2183 - Raviel Chausse Silveira\r\n $rootScope.$on(\"$routeChangeStart\", $permission.middleware);\r\n $rootScope.$on(\"$routeChangeStart\", $layout.middleware);\r\n \r\n $rootScope.getIp = function () {\r\n function response(data) {\r\n window.userip = data.ip;\r\n $rootScope.ipAddress = data.ip;\r\n }\r\n function trigger() {\r\n $.getJSON('https://api.ipify.org?format=json', \r\n response, \r\n response\r\n );\r\n }\r\n if (/^(interactive|complete)$/i.test(document.readyState)) {\r\n trigger();\r\n }\r\n else {\r\n document.addEventListener('DOMContentLoaded', trigger);\r\n }\r\n }\r\n \r\n $rootScope.getIp();\r\n\r\n /// INNO-1993 - Raviel Chausse Silveira\r\n $rootScope.showMultiCountry = function () {\r\n var multiCountry = $session.get('multiCountry');\r\n return !_.isEmpty(multiCountry)\r\n };\r\n\r\n $rootScope.onShowMultiCountryModal = function (evt) {\r\n MultiCountryModal.show(evt, $rootScope.multiCountry, fnCloseModal);\r\n };\r\n\r\n $rootScope.getFormatoData = function(){\r\n var userLang = navigator.language || navigator.userLanguage;\r\n\r\n switch(userLang){\r\n case 'en-US':\r\n return 'FormatoData-EN';\r\n default:\r\n return 'FormatoData'; \r\n }\r\n };\r\n\r\n $rootScope.getFormatoData();\r\n\r\n function fnCloseModal (customerId) {\r\n $rootScope.loading = true;\r\n\r\n var raw = \"grant_type=refresh_token\";\r\n raw += \"&refresh_token=\" + encodeURIComponent($session.get('refresh_token'));\r\n raw += \"&customerID=\" + encodeURIComponent(customerId);\r\n\r\n AuthAPI.login(\r\n raw,\r\n function (response) {\r\n $session.clear();\r\n $auth.login(response, $location.url());\r\n window.location.reload();\r\n },\r\n function (error) {\r\n console.error({ error: error });\r\n $auth.logout();\r\n }\r\n );\r\n }\r\n\r\n // INTRA-3181: FunĆ§Ć£o para verificar se uma string Ć© uma URL segura\r\n $rootScope.sanitizeUrl = function(url) {\r\n var sanitizedUrl = $sce.trustAsResourceUrl(url);\r\n return sanitizedUrl;\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .run(function (\r\n $rootScope,\r\n $session,\r\n $location,\r\n $window) {\r\n\r\n // track pageview on state change\r\n $rootScope.$on('$viewContentLoaded', function (event) {\r\n CreateGa();\r\n });\r\n\r\n // aqui salva todos os eventos http realizados no site. Apenas elimino o que Ć© para carregar layouts, como html, json, css e js\r\n $rootScope.gaRequestEvent = function (host, action, url) {\r\n if (\r\n url.toLowerCase().indexOf(\"html\") === -1\r\n && url.toLowerCase().indexOf(\"json\") === -1\r\n && url.toLowerCase().indexOf(\"css\") === -1\r\n && url.toLowerCase().indexOf(\"js\") === -1) {\r\n\r\n if ($rootScope.user != null) {\r\n ga('send', {\r\n hitType: 'event',\r\n eventCategory: host,\r\n eventAction: getUserId(),\r\n eventLabel: url\r\n });\r\n }\r\n }\r\n };\r\n\r\n //registro exclusiso para cliques a acesso externo\r\n $rootScope.gaExternalAccessEvent = function (label) {\r\n ga('send', {\r\n hitType: 'event',\r\n eventCategory: $location.$$host,\r\n eventAction: 'External Access',\r\n eventLabel: label\r\n });\r\n };\r\n\r\n $rootScope.gaTrackingEvent = function (orderId) {\r\n ga('send', {\r\n hitType: 'event',\r\n eventCategory: $location.$$host,\r\n eventAction: 'Order Tracking',\r\n eventLabel: orderId,\r\n userId: getUserId(),\r\n language: $session.get('locale', 'pt-br')\r\n });\r\n };\r\n\r\n function CreateGa() {\r\n setGa('G-Q984D3KKE2', 'GA4');\r\n }\r\n\r\n function getUserId() {\r\n //se existir o objeto user e a property UserId for > 0...\r\n if ((($rootScope.user || {}).UserId || 0) > 0) {\r\n //retorna o id do usuĆ”rio\r\n return $rootScope.user.UserId;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n\r\n function setGa(gaTrackingId, format) {\r\n if ((location.hostname.toLowerCase() !== 'partnerportal.synnex.com') && (location.hostname.toLowerCase() !== 'partnerportal.lac.tdsynnex.com')) {\r\n return;\r\n }\r\n\r\n var userId = getUserId();\r\n\r\n //criar o registro do DA com o nome da aplicaĆ§Ć£o\r\n $window.ga('create', gaTrackingId, hostname.split('.')[0]);\r\n\r\n //verifica se tem usuario logado\r\n if (userId) {\r\n //define o userId da sessĆ£o do DA\r\n gtag('set', 'user_properties', { 'userId': userId });\r\n\r\n //Custom-User-Customer-ID - index 4\r\n gtag('set', 'user_properties', { 'CustomUserCustomerID': $rootScope.user.CustomerId });\r\n\r\n //Custom-User-Customer-Name - index 5\r\n gtag('set', 'user_properties', { 'CustomUserCustomerName': $rootScope.user.ProfileEnterprise });\r\n\r\n //Custom-User-ID - index 1\r\n gtag('set', 'user_properties', { 'CustomUserID': userId });\r\n\r\n //Custom-User-Name - index 2\r\n gtag('set', 'user_properties', { 'CustomUserName': $rootScope.user.Name });\r\n\r\n //Custom-User-Email - index 3\r\n gtag('set', 'user_properties', { 'CustomUserEmail': $rootScope.user.Email });\r\n }\r\n\r\n if (format === 'UA') {\r\n //define a pagina que estĆ” sendo acessada \r\n $window.ga('set', 'page', $location.url());\r\n\r\n //envia tudo que foi definido (set) para o GA\r\n $window.ga('send', 'pageview');\r\n } else if (format === 'GA4') {\r\n gtag('event', 'page_view', {\r\n 'page_location': document.location.href\r\n })\r\n\r\n gtag('event', 'screen_view', {\r\n 'page_title': window.document.title,\r\n 'page_path': document.location.hash.replace('#!', ''),\r\n 'send_to': gaTrackingId,\r\n 'page_location': document.location.href\r\n })\r\n\r\n }\r\n }\r\n\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .service('ResourceInterceptor', ResourceInterceptor)\r\n .config(Config);\r\n\r\n /** @ngInject */\r\n function Config ($httpProvider, $qProvider) {\r\n $httpProvider.interceptors.push('ResourceInterceptor');\r\n $qProvider.errorOnUnhandledRejections(false);\r\n }\r\n \r\n /** @ngInject */\r\n function ResourceInterceptor (\r\n $rootScope,\r\n $location, \r\n $session, \r\n $translate,\r\n $q\r\n ) {\r\n return {\r\n request: function(config) {\r\n\r\n var token = $session.get('token');\r\n\r\n if (!_.isEmpty(token) && !_.endsWith(config.url, '.html')) {\r\n config.headers.Authorization = 'Bearer ' + token;\r\n } \r\n\r\n $rootScope.gaRequestEvent($location.$$host, config.method, $location.$$url)\r\n\r\n return config;\r\n },\r\n response: function(response) {\r\n var reqTime = $session.get('reqTime');\r\n\r\n // 10800000ms == 3 horas\r\n if (reqTime !== null && (Date.now() - reqTime) > 10800000 && !$location.path().startsWith('/auth/login')) {\r\n $session.setSessionStorage('lastRoute', window.location.href);\r\n $location.path('auth/expired');\r\n }\r\n\r\n return response;\r\n },\r\n responseError: function(response) {\r\n switch (response.status) {\r\n\r\n case 403:\r\n $translate('Auth.NotAllowed').then(function (translation) {\r\n window.toastr.warning(translation);\r\n });\r\n return response;\r\n\r\n case 401:\r\n $location.path('auth/expired');\r\n return response;\r\n \r\n default:\r\n return $q.reject(response);\r\n }\r\n }\r\n }\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .config(function($routeProvider, $locationProvider) {\r\n\r\n $routeProvider\r\n .otherwise({\r\n redirectTo: \"/\"\r\n });\r\n\r\n // use the HTML5 History API\r\n // $locationProvider.html5Mode(true);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.factories')\r\n .factory('$banners', function ($rootScope, $redirect, $location) {\r\n\r\n var vm = this;\r\n\r\n vm.baseBanners = 'assets/img/banners/';\r\n\r\n vm.getBannerInstitucional = function (locale) {\r\n return {\r\n image: vm.baseBanners + locale +'/banner-institucional.jpg',\r\n isAllowed: $rootScope.isAllowed(['Auth.Homepage'],[1]),\r\n passive: true,\r\n externalLink: false,\r\n url: false,\r\n customAction: false,\r\n action: function (evt) {\r\n\r\n }\r\n }\r\n };\r\n\r\n vm.getBannerPartnerPortal = function (locale) {\r\n return {\r\n image: vm.baseBanners + locale +'/banner-partner-portal.jpg',\r\n isAllowed: $rootScope.isAllowed(['Auth.Homepage'],false),\r\n passive: true,\r\n externalLink: false,\r\n url: false,\r\n customAction: false,\r\n action: function (evt) {\r\n\r\n }\r\n }\r\n };\r\n\r\n vm.getBannerFinancialSolutions = function (locale) {\r\n return {\r\n image: vm.baseBanners + locale +'/banner-solucoes.jpg',\r\n isAllowed: $rootScope.isAllowed(['Finances.FinancialSolutions'],[1,4,6]),\r\n passive: false,\r\n externalLink: true,\r\n url: \"http://br-westcon.com.br/2017/2074/portfolio-solucoes-financeiras.pdf\",\r\n customAction: false,\r\n action: function (evt) {\r\n\r\n }\r\n }\r\n };\r\n\r\n vm.getBannerComstorExpress = function (locale) {\r\n return {\r\n image: vm.baseBanners + locale +'/banner-td-express.jpg',\r\n isAllowed: $rootScope.isAllowed(['Ecommerce.ComstorExpress'],[1,2,4,5,6,8]),\r\n passive: false,\r\n externalLink: false,\r\n url: false,\r\n customAction: true,\r\n action: function (evt) {\r\n $rootScope.loading = true;\r\n $redirect.redirect(\"TD SYNNEX EXPRESS CISCO\")\r\n }\r\n }\r\n };\r\n\r\n vm.getBannerComstortv = function (locale) {\r\n return {\r\n image: vm.baseBanners + locale +'/banner-comstortv.jpg',\r\n isAllowed: $rootScope.isAllowed(['Ecommerce.ComstorExpress'],[1]),\r\n passive: false,\r\n externalLink: true,\r\n url: 'https://tvcomstor.com.br/',\r\n customAction: false,\r\n action: function (evt) {\r\n\r\n }\r\n }\r\n };\r\n\r\n vm.getBannerBlueskyMarketplace = function (locale) {\r\n return {\r\n image: vm.baseBanners + locale +'/banner-bluesky-marketplace.png',\r\n isAllowed: $rootScope.isAllowed(['Cloud.BlueskyMarketplace'],[1]),\r\n passive: false,\r\n externalLink: true,\r\n url: 'https://blueskymarketplace.westconcomstor-la.com/',\r\n customAction: false,\r\n action: function (evt) {\r\n\r\n }\r\n }\r\n };\r\n\r\n vm.getBannerNFComissionamento = function (locale) {\r\n return {\r\n image: vm.baseBanners + locale +'/banner-nf-comissionamento.jpg',\r\n isAllowed: $rootScope.isAllowed(['Auth.Homepage'], [1]),\r\n passive: false,\r\n externalLink: true,\r\n url: 'https://blogbrasil.westcon.com/?hs_preview=jUKweSLe-24122069893',\r\n customAction: false,\r\n action: function (evt) {\r\n\r\n }\r\n }\r\n };\r\n\r\n vm.getBannerTDSynnex = function (locale) {\r\n return {\r\n image: vm.baseBanners + locale +'/banner-tdsynnex.png',\r\n isAllowed: $rootScope.isAllowed(['Auth.Homepage'],false),\r\n passive: true,\r\n externalLink: false,\r\n url: false,\r\n customAction: false,\r\n action: function (evt) {\r\n\r\n }\r\n }\r\n };\r\n\r\n vm.getBannerCloudSolv = function (locale) {\r\n return {\r\n image: vm.baseBanners + locale +'/banner-cloud-solv.png',\r\n isAllowed: $rootScope.isAllowed(['Auth.Homepage'], [1]),\r\n passive: false,\r\n externalLink: false,\r\n customAction: true,\r\n action: function (evt) {\r\n $location.path('cloud-solv');\r\n }\r\n }\r\n };\r\n\r\n vm.getBannerSilverPeak = function (locale) {\r\n return {\r\n image: vm.baseBanners + locale +'/banner-silver-peak.png',\r\n isAllowed: $rootScope.isAllowed(['Auth.Homepage'], [1, 2, 3, 4, 5, 6, 7, 8]),\r\n passive: false,\r\n externalLink: true,\r\n url: 'https://silverpeak.synnex.com/',\r\n customAction: false,\r\n action: function (evt) {\r\n\r\n }\r\n }\r\n };\r\n\r\n vm.getBannerFraude = function (locale) {\r\n return {\r\n image: vm.baseBanners + locale + '/banner-fraude.png',\r\n isAllowed: $rootScope.isAllowed(['Auth.Homepage'], [1]),\r\n passive: false,\r\n externalLink: true,\r\n url: 'https://blogbrasil.westcon.com/-temporary-slug-e191aaaa-b4ee-4bb2-a507-a72902974e2e?hs_preview=DFQhLqKu-40637121429',\r\n customAction: false,\r\n action: function (evt) {\r\n\r\n }\r\n }\r\n };\r\n\r\n vm.getBannerExcelenciaDistribuicao = function (locale) {\r\n return {\r\n image: vm.baseBanners + locale + '/banner-excelencia-distribuicao.png',\r\n isAllowed: $rootScope.isAllowed(['Auth.Homepage'], [1]),\r\n passive: false,\r\n externalLink: true,\r\n url: 'https://inforchannel.com.br/premio-excelencia-em-distribuicao-2021/',\r\n customAction: false,\r\n action: function (evt) {\r\n\r\n }\r\n }\r\n };\r\n\r\n vm.getBannerSplunk = function (locale) {\r\n return {\r\n image: vm.baseBanners + locale + '/banner-splunk.png',\r\n isAllowed: $rootScope.isAllowed(['Auth.Homepage'], [1]),\r\n passive: false,\r\n externalLink: true,\r\n url: 'https://splunk.synnex.com/',\r\n customAction: false,\r\n action: function (evt) {\r\n\r\n }\r\n }\r\n };\r\n \r\n vm.getBannerComstor = function (locale) {\r\n return {\r\n image: vm.baseBanners + locale + '/banner-comstor.png',\r\n isAllowed: $rootScope.isAllowed(['Auth.Homepage'], [5]),\r\n passive: false,\r\n externalLink: true,\r\n url: 'https://www.westconmkt.com/campaigns/03007-cisco/',\r\n customAction: false,\r\n action: function (evt) {\r\n\r\n }\r\n }\r\n }; \r\n\r\n vm.get = function (locale) {\r\n var banners = [];\r\n\r\n switch(locale) {\r\n case 'en':\r\n banners.push(vm.getBannerTDSynnex('en'));\r\n banners.push(vm.getBannerPartnerPortal('en'));\r\n banners.push(vm.getBannerNFComissionamento('en'));\r\n banners.push(vm.getBannerComstorExpress('en'));\r\n break;\r\n case 'es-ar':\r\n banners.push(vm.getBannerTDSynnex('es-ar'));\r\n banners.push(vm.getBannerPartnerPortal('es-ar'));\r\n banners.push(vm.getBannerNFComissionamento('es-ar'));\r\n banners.push(vm.getBannerFinancialSolutions('es-ar'));\r\n banners.push(vm.getBannerComstorExpress('es-ar'));\r\n break;\r\n default:\r\n banners.push(vm.getBannerSplunk('pt-br'));\r\n var dataLimiteBannerExcelenciaDistribuicao = new Date('2021-05-06');\r\n if(Date.now() <= dataLimiteBannerExcelenciaDistribuicao) {\r\n banners.push(vm.getBannerExcelenciaDistribuicao('pt-br'));\r\n }\r\n banners.push(vm.getBannerFraude('pt-br'));\r\n banners.push(vm.getBannerTDSynnex('pt-br'));\r\n banners.push(vm.getBannerInstitucional('pt-br'));\r\n banners.push(vm.getBannerNFComissionamento('pt-br'));\r\n banners.push(vm.getBannerPartnerPortal('pt-br'));\r\n banners.push(vm.getBannerFinancialSolutions('pt-br'));\r\n banners.push(vm.getBannerComstorExpress('pt-br'));\r\n banners.push(vm.getBannerCloudSolv('pt-br')); \r\n break;\r\n }\r\n\r\n banners = banners.filter(function (banner) { \r\n return banner.isAllowed;\r\n });\r\n\r\n if (banners.length > 0) {\r\n var index = 0;\r\n banners = banners.map(function (banner) {\r\n banner.index = index++;\r\n return banner;\r\n });\r\n }\r\n\r\n return banners;\r\n };\r\n\r\n return vm;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.factories')\r\n .factory('$companySituation', function () {\r\n\r\n /*************************************/\r\n /** SituaƧƵes da Empresa **/\r\n /** **/\r\n /** 0 - Desabilitada **/\r\n /** 1 - Ativa **/\r\n /** 2 - Inativa **/\r\n /** 3 - Em Estudo **/\r\n /*************************************/\r\n\r\n var vm = this;\r\n\r\n vm.GetCompanySituationList = function () {\r\n return [\r\n { id: '0', key: 'Disabled' },\r\n { id: '1', key: 'Active' },\r\n { id: '2', key: 'Inactive' },\r\n { id: '3', key: 'InStudy' },\r\n ];\r\n }\r\n\r\n vm.GetById = function (id) {\r\n var list = vm.GetCompanySituationList().filter(function (companySituation) { \r\n return companySituation.id == id; \r\n });\r\n return list.length > 0 ? list[0].key : \"\";\r\n }\r\n\r\n return vm;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.factories')\r\n .factory('$menu', function (\r\n $rootScope, \r\n $location,\r\n $redirect\r\n ) {\r\n\r\n var vm = this;\r\n\r\n vm.getMenuComstorExpress = function () {\r\n return {\r\n iconpath: \"assets/img/icons/cart.png\",\r\n visible: $rootScope.isAllowed(['Ecommerce.ComstorExpress'],[1,2,4,5,6]),\r\n title: \"comstorexpress\",\r\n text: \"comstorexpress.text\",\r\n action: function (ev) {\r\n $redirect.redirect(\"TD SYNNEX EXPRESS CISCO\")\r\n }\r\n };\r\n };\r\n\r\n vm.getMenuWestconExpress = function () {\r\n return {\r\n iconpath: \"assets/img/icons/cart.png\",\r\n visible: $rootScope.isAllowed(['Ecommerce.WestconExpress'],[1,2,4,5,8]),\r\n title: \"westconexpress\",\r\n text: \"westconexpress.text\",\r\n action: function (ev) {\r\n $redirect.redirect(\"TD SYNNEX EXPRESS\")\r\n }\r\n };\r\n };\r\n\r\n vm.getMenuConfigurador = function () {\r\n return {\r\n iconpath: \"assets/img/icons/eng.png\",\r\n visible: $rootScope.isAllowed(['Quote.Configurator'],[1]),\r\n title: \"configurador\",\r\n text: \"configurador.text\",\r\n action: function (ev) {\r\n $redirect.redirect(\"Configurador\")\r\n }\r\n };\r\n };\r\n\r\n vm.getMenuEstoque = function () {\r\n return {\r\n iconpath: \"assets/img/icons/estoque.png\",\r\n visible: $rootScope.isAllowed(['Quote.WithStock'],false),\r\n title: \"estoque\",\r\n text: \"estoque.text\",\r\n action: function (ev) {\r\n $location.url('/online-stock');\r\n }\r\n };\r\n };\r\n\r\n vm.getMenuPortalFinanceiro = function () {\r\n return {\r\n iconpath: \"assets/img/icons/money.png\",\r\n visible: $rootScope.isAllowed(['Finances.EndUserTiltes'],[1]),\r\n title: \"portalfinanceiro\",\r\n text: \"portalfinanceiro.text\",\r\n action: function (ev) {\r\n $location.url('/invoice/enduser');\r\n }\r\n };\r\n };\r\n\r\n vm.getMenuRastreamento = function () {\r\n return {\r\n iconpath: \"assets/img/icons/track.png\",\r\n visible: $rootScope.isAllowed(['Orders.ResellerOrders'],[1,2,4,6,7,8]),\r\n title: \"rastreamento\",\r\n text: \"rastreamento.text\",\r\n action: function (ev) {\r\n $location.url('/reseller-order/history');\r\n }\r\n };\r\n };\r\n\r\n vm.get = function () {\r\n return [\r\n vm.getMenuComstorExpress(), \r\n vm.getMenuWestconExpress(), \r\n vm.getMenuConfigurador(), \r\n vm.getMenuEstoque(), \r\n vm.getMenuPortalFinanceiro(), \r\n vm.getMenuRastreamento()\r\n ]\r\n };\r\n\r\n return vm;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .factory('$orderStatus', function () {\r\n\r\n var vm = this;\r\n\r\n vm.GetByCode = function (code) {\r\n var list = this.OrderStatusList.filter(function (orderStatus) { \r\n return orderStatus.code === code; \r\n });\r\n return list.length > 0 ? list[0] : [];\r\n };\r\n\r\n vm.GetBySLUG = function (slug) {\r\n var list = this.OrderStatusList.filter(function (orderStatus) { \r\n return orderStatus.slug === slug; \r\n });\r\n return list.length > 0 ? list[0] : [];\r\n };\r\n\r\n vm.Get = function () {\r\n return [\r\n { code: 0, slug: 'All', key: 'All' },\r\n // { code: 1, slug: 'PedidoEmAnalisePeloFinanceiro', key: 'Status.PedidoEmAnalisePeloFinanceiro' },\r\n //{ code: 2, slug: 'PrePedido', key: 'Status.PrePedido' },\r\n //{ code: 3, slug: 'PedidoCancelado', key: 'Status.PedidoCancelado' },\r\n // { code: 4, slug: 'PedidoEmAnalisePorOperacoes', key: 'Status.PedidoEmAnalisePorOperacoes' },\r\n { code: 5, slug: 'PedidoDeVendaEmBacklog', key: 'Status.PedidoDeVendaEmBacklog' },\r\n { code: -1, slug: 'Others', key: 'Status.Others' }\r\n //{ code: 6, slug: 'PedidoEntregue', key: 'Status.PedidoEntregue' },\r\n //{ code: 7, slug: 'PedidoDevolvido', key: 'Status.PedidoDevolvido' },\r\n // { code: 8, slug: 'PedidoNegadoPeloFinanceiro', key: 'Status.PedidoNegadoPeloFinanceiro' },\r\n // { code: 9, slug: 'PrePedidoEmAnalisePeloFinanceiro', key: 'Status.PrePedidoEmAnalisePeloFinanceiro' },\r\n // { code: 10, slug: 'PrePedidoNegadoPeloFinanceiro', key: 'Status.PrePedidoNegadoPeloFinanceiro' },\r\n //{ code: 11, slug: 'PedidoEmProcessamento', key: 'Status.PedidoEmProcessamento' },\r\n //{ code: 12, slug: 'PedidoDespachado', key: 'Status.PedidoDespachado' },\r\n //{ code: 13, slug: 'PedidoParcialmenteDevolvido', key: 'Status.PedidoParcialmenteDevolvido' }\r\n ];\r\n };\r\n\r\n return vm;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.factories')\r\n .factory('$skuType', function () {\r\n\r\n var vm = this;\r\n\r\n vm.List = function () {\r\n return [\r\n { code: 0, slug: 'All', key: 'All' },\r\n { code: 1, slug: 'Hardware', key: 'Hardware' },\r\n { code: 2, slug: 'SoftwareService', key: 'SoftwareService' }\r\n ];\r\n }\r\n\r\n vm.GetByCode = function (code) {\r\n var list = this.List().filter(function (type) {\r\n return type.code === code;\r\n });\r\n return list.length > 0 ? list[0] : [];\r\n };\r\n \r\n vm.GetBySLUG = function (slug) {\r\n var list = this.List().filter(function (type) {\r\n return type.slug === slug;\r\n });\r\n return list.length > 0 ? list[0] : [];\r\n };\r\n\r\n return vm;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.factories')\r\n .factory('$states', function () {\r\n\r\n var vm = this;\r\n\r\n vm.List = function () {\r\n return [\r\n \"AC\", \"AL\", \"AM\", \"AP\", \"BA\", \"CE\", \r\n \"DF\", \"ES\", \"GO\", \"MA\", \"MG\", \"MS\", \r\n \"MT\", \"PA\", \"PB\", \"PE\", \"PI\", \"PR\", \r\n \"RJ\", \"RN\", \"RO\", \"RR\", \"RS\", \"SC\", \r\n \"SE\", \"SP\", \"TO\" \r\n ];\r\n }\r\n\r\n return vm;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .provider('defaultLocale', function () {\r\n \tthis.getDefaultLocate = function () {\r\n \t\tvar defaultLocale = 'en';\r\n\r\n \t\tswitch (navigator.language) {\r\n \t\t case 'es':\r\n \t\t case 'es-AR':\r\n \t\t defaultLocale = 'es-ar';\r\n \t\t break;\r\n \t\t case 'en':\r\n \t\t case 'en-UK':\r\n \t\t defaultLocale = 'en';\r\n \t\t break;\r\n\t\t\t\tcase 'pt-BR':\r\n\t\t\t\t defaultLocale = 'pt-br';\r\n\t\t\t\t\tbreak;\r\n \t\t default:\r\n \t\t defaultLocale = 'en';\r\n \t\t break;\r\n \t\t}\r\n \t\treturn defaultLocale;\r\n \t}\r\n \tthis.$get = function () {\r\n \t\treturn {\r\n \t\t\tdefaultLocale: this.getDefaultLocate\r\n \t\t}\r\n \t}\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .filter('range', function(){\r\n return function(items, property, min, max) {\r\n return items.filter(function(item){\r\n return item[property] >= min && item[property] <= max;\r\n });\r\n };\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .service(\"$localeService\", [\r\n \"tmhDynamicLocale\",\r\n \"defaultLocale\", \r\n \"$rootScope\", \r\n \"$translate\", \r\n \"$session\", \r\n function (\r\n tmhDynamicLocale, \r\n defaultLocaleProvider,\r\n $rootScope,\r\n $translate, \r\n $session\r\n ) {\r\n\r\n var vm = {};\r\n\r\n vm.setLocale = function (locale) {\r\n\r\n locale = _.isEmpty(locale) ? defaultLocaleProvider.defaultLocale() : locale;\r\n \r\n tmhDynamicLocale.set(locale);\r\n $translate.use(locale);\r\n $('.locale-wrapper li').removeClass('active');\r\n $('#'+locale).addClass('active');\r\n $session.set('locale', locale);\r\n\r\n $rootScope.$emit('Dashboard_Reload');\r\n }\r\n\r\n return vm;\r\n }\r\n ]);\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .config(function ($translateProvider, defaultLocaleProvider) {\r\n\r\n $translateProvider.useSanitizeValueStrategy('escape');\r\n\r\n $translateProvider.useUrlLoader('/assets/translation/pt-br.json');\r\n $translateProvider.useStaticFilesLoader({\r\n prefix: '/assets/translation/',\r\n suffix: '.json'\r\n });\r\n $translateProvider.preferredLanguage(defaultLocaleProvider.getDefaultLocate());\r\n })\r\n .config(function(tmhDynamicLocaleProvider, defaultLocaleProvider) {\r\n var locale = defaultLocaleProvider.getDefaultLocate();\r\n tmhDynamicLocaleProvider.localeLocationPattern('../../assets/translation/i18n/angular-locale_{{locale}}.js');\r\n tmhDynamicLocaleProvider.defaultLocale(locale);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('AccessControlAPI', function ($resource) {\r\n\r\n var router = baseApi + 'api/AccessControl';\r\n\r\n var actions = {\r\n ListPermissions: {\r\n method: 'GET',\r\n url: router + \"/ListPermissions\", \r\n },\r\n ListByGroupId: {\r\n method: 'GET',\r\n url: router + \"/ListByGroupId\", \r\n },\r\n GetUserPermissions: {\r\n method: 'GET',\r\n url: router + \"/GetUserPermissions\", \r\n },\r\n DeleteUserPermissions: {\r\n method: 'DELETE',\r\n url: router + \"/DeleteUserPermissions\", \r\n },\r\n CreateUserPermissions: {\r\n method: 'POST',\r\n url: router + \"/CreateUserPermissions\", \r\n },\r\n ChangeUserPermissions: {\r\n method: 'POST',\r\n url: router + \"/ChangeUserPermissions\", \r\n }\r\n };\r\n return $resource(router, {}, actions);\r\n })\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('AccessGroupAPI', function ($resource) {\r\n\r\n var router = baseApi + 'api/AccessGroup';\r\n\r\n var actions = {\r\n query: {\r\n isArray: false,\r\n url: router + \"/List\"\r\n }\r\n };\r\n\r\n return $resource(router, {}, actions);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('ApplicationResponseAPI', function ($resource) {\r\n\r\n var router = baseApi + 'api/ApplicationResponse';\r\n\r\n var actions = {\r\n GetTipoCliente: {\r\n method: 'GET',\r\n url: router + \"/GetTipoCliente\",\r\n isArray: true\r\n },\r\n GetClassificacao: {\r\n method: 'GET',\r\n url: router + \"/GetClassificacao\",\r\n isArray: true\r\n },\r\n GetCondicaoPagamento: {\r\n method: 'GET',\r\n url: router + \"/GetCondicaoPagamento\",\r\n isArray: true\r\n }\r\n };\r\n\r\n return $resource(router, {}, actions);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('AuthAPI', function ($resource) {\r\n\r\n var router = baseApi + 'api/RecoveryPassword';\r\n\r\n var actions = {\r\n 'recoverPassword': {\r\n method: 'POST',\r\n url: router + \"/recovery\"\r\n },\r\n 'resetPassword': {\r\n method: 'PUT',\r\n url: router + \"/reset\"\r\n },\r\n 'welcomePassword': {\r\n method: 'PUT',\r\n url: router + \"/welcome\"\r\n },\r\n 'getUser': {\r\n method: 'GET',\r\n url: router + \"/validate\"\r\n },\r\n 'login': {\r\n method: 'POST',\r\n url: baseApi + \"security/token\",\r\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' }\r\n },\r\n 'loginMyWestcon': {\r\n method: 'GET',\r\n url: baseApi + \"MyWestcon/LoginMyWestcon\", \r\n }\r\n }\r\n\r\n return $resource(router, {}, actions);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('BankSlipAPI', function($resource){\r\n\r\n var router = baseApi + 'api/BankSlip';\r\n\r\n var actions = {\r\n GetBankSlip: {\r\n method: 'GET',\r\n url: router + \"/GetBankSlip\",\r\n isArray: false\r\n }\r\n }\r\n return $resource(router, {}, actions);\r\n\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n \r\n angular.module('my')\r\n .factory(\"$cart\", \r\n function (\r\n $location,\r\n toastr\r\n ) {\r\n\r\n var cart = {};\r\n\r\n cart._total = 0;\r\n cart._subtotal = 0;\r\n cart.IsentoICMS = false;\r\n cart._items = [];\r\n cart.UfDestino = false;\r\n cart.UfOrigem = \"\";\r\n cart.frete = 0;\r\n cart.cnpjEndUser = \"\";\r\n\r\n //TODO nĆ£o usar string!\r\n cart.faturamentoSelecionado = \"Revenda\";\r\n\r\n cart._updatesubTotal = function () {\r\n cart._subtotal = 0;\r\n for (var i = cart._items.length - 1; i >= 0; i--) {\r\n if (cart.faturamentoSelecionado == \"Direto\") {\r\n var comissao = parseFloat(cart._items[i].ComissaoLiquida);\r\n var comissaoLiq = isNaN(comissao) ? 0 : comissao;\r\n cart._subtotal += (cart._items[i].Quantidade * (cart._items[i].PrecoUnitario) + comissao);\r\n } else {\r\n cart._subtotal += cart._items[i].Quantidade * cart._items[i].PrecoUnitario;\r\n }\r\n }\r\n };\r\n\r\n cart.itemsSubtotal = function () {\r\n var itemsSubtotal = 0;\r\n for (var i = cart._items.length - 1; i >= 0; i--) {\r\n itemsSubtotal += cart._items[i].Quantidade * cart._items[i].PrecoUnitario;\r\n }\r\n return itemsSubtotal;\r\n };\r\n\r\n cart.subtotal = function () {\r\n return cart._subtotal;\r\n };\r\n\r\n cart.comission = function () {\r\n var total = 0;\r\n for (var i = cart._items.length - 1; i >= 0; i--) {\r\n total += cart._items[i].ComissaoLiquida;\r\n }\r\n return total;\r\n };\r\n\r\n cart.getItems = function () {\r\n var items = $.extend(true, [], cart._items);\r\n return items;\r\n };\r\n\r\n /**\r\n * add item if cart doesnt have it yet\r\n * otherwise, update the amount\r\n **/\r\n cart.addItem = function (item) {\r\n var indexOfItem = cartHasItem(item);\r\n if (indexOfItem >= 0) {\r\n updateItemAmount(item, indexOfItem);\r\n } else {\r\n cart._items.push(item)\r\n }\r\n cart._updatesubTotal();\r\n };\r\n\r\n cart.updateItem = function (item) {\r\n var indexOfItem = cartHasItem(item);\r\n // setItemAmount(item, indexOfItem);\r\n if (indexOfItem >= 0) {\r\n cart._items[indexOfItem] = item;\r\n }\r\n cart._updatesubTotal();\r\n };\r\n\r\n /**\r\n * return index of an item, if exists in cart. otherwise, return -1\r\n **/\r\n var cartHasItem = function (item) {\r\n // return cart._items.findIndex(function(element, index, array){ return element.PartNumber == item.PartNumber; });\r\n return cart.getIndexByPartnumber(item.PartNumber);\r\n };\r\n\r\n /**\r\n * update item amout\r\n **/\r\n var updateItemAmount = function (item, index) {\r\n cart._items[index].Quantidade += item.Quantidade;\r\n };\r\n\r\n /**\r\n * set a new amount in an item\r\n **/\r\n var setItemAmount = function (item, index) {\r\n cart._items[index].Quantidade = parseInt(item.Quantidade);\r\n };\r\n\r\n cart.removeItem = function (item) {\r\n var indexOfItem = cartHasItem(item);\r\n if (indexOfItem > -1) {\r\n cart._items.splice(indexOfItem, 1);\r\n cart._updatesubTotal();\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n cart.itemAmount = function () {\r\n var amount = 0;\r\n for (var i = cart._items.length - 1; i >= 0; i--) {\r\n amount += cart._items[i].Quantidade;\r\n }\r\n return amount;\r\n };\r\n\r\n cart.empty = function () {\r\n cart._items = [];\r\n cart._updatesubTotal();\r\n toastr.info(\"Carrinho esvaziado com sucesso.\");\r\n };\r\n\r\n cart.getIndexByPartnumber = function(partnumber) {\r\n for (var i = 0; i < cart._items.length; i++) {\r\n if (cart._items[i].PartNumber == partnumber) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n };\r\n\r\n cart.refillCart = function (items) {\r\n cart._items = $.extend(true, [], items)\r\n cart._updatesubTotal();\r\n }\r\n\r\n return cart;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n angular.module('my.API')\r\n .service('CisAPI', function($http) {\r\n return {\r\n listCountries: function(callback) {\r\n var promise = $http({\r\n method: 'GET',\r\n url: cisUsApiUrl + \"api/v1/address/countryCodes\",\r\n headers: {\r\n 'x-api-key': cisUsApiToken\r\n }\r\n });\r\n return handleResponse(promise, callback);\r\n },\r\n listStates: function(country, callback) {\r\n var promise = $http({\r\n method: 'GET',\r\n url: cisUsApiUrl + \"api/v1/address/countryCode/\" + country + \"/states\",\r\n headers: {\r\n 'x-api-key': cisUsApiToken\r\n }\r\n });\r\n return handleResponse(promise, callback);\r\n },\r\n listCities: function(country, state, callback) {\r\n var promise = $http({\r\n method: 'POST',\r\n url: cisUsApiUrl + \"api/v1/address/queryFormByZipCodeAndCity\",\r\n headers: {\r\n 'x-api-key': cisUsApiToken\r\n },\r\n data: {\r\n \"country\": country,\r\n \"state\": state\r\n }\r\n });\r\n return handleResponse(promise, callback);\r\n }\r\n };\r\n });\r\n})();\r\n\r\nfunction handleResponse(promise, callback) {\r\n return promise.then(function(response) {\r\n if (callback) {\r\n callback(response.data.data);\r\n }\r\n return response.data.data;\r\n }).catch(function(error) {\r\n if (callback) {\r\n callback(error);\r\n }\r\n throw error;\r\n });\r\n}\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('CloudConsumptionAPI', function ($resource) {\r\n\r\n var router = baseApi + 'api/CloudConsumption';\r\n\r\n var actions = {\r\n AcceptInvoice: {\r\n method: 'POST',\r\n url: router + \"/AcceptInvoice\"\r\n },\r\n SendCloudReport: {\r\n method: 'POST',\r\n url: router + \"/SendCloudReport\"\r\n },\r\n GetReport: {\r\n method: 'GET',\r\n url: router + \"/GetReport\"\r\n },\r\n GetCredentials: {\r\n method: 'GET',\r\n url: router + \"/Credentials\"\r\n },\r\n GetBillingCycles: {\r\n method: 'GET',\r\n url: router + \"/BillingCycles\"\r\n },\r\n CreateCredential: {\r\n method: 'POST',\r\n url: router + \"/CreateCredential\"\r\n },\r\n DownloadReportExcel: {\r\n method: 'POST',\r\n url: router + \"/DownloadReportExcel\"\r\n },\r\n ConfirmReportData: {\r\n method: 'POST',\r\n url: router + \"/ConfirmReportData\"\r\n },\r\n SetPreConfirmStatus: {\r\n method: 'POST',\r\n url: router + \"/PreConfirm\"\r\n },\r\n DeleteCredentials: {\r\n method: 'POST',\r\n url: router + \"/DeleteCredentials\"\r\n }\r\n };\r\n\r\n return $resource(router, [], actions);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('ComissionBatchLogAPI', function ($resource) {\r\n\r\n var router = baseApi + 'api/ComissionBatchLog';\r\n \r\n var actions = {\r\n ListBy: {\r\n method: 'GET',\r\n url: router + \"/ListBy\"\r\n },\r\n saveLog: {\r\n method: 'POST',\r\n url: router + \"/Save\"\r\n }\r\n };\r\n\r\n return $resource(router, {}, actions);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('CompanyAPI', function($resource, $rootScope) {\r\n\r\n var actions = {\r\n listStates: {\r\n method: 'GET',\r\n url: baseApi + \"Home/ListStates\",\r\n params: {\r\n data: true\r\n }\r\n },\r\n listCities: {\r\n method: 'GET',\r\n url: baseApi + \"Home/ListCities\",\r\n params: {\r\n data: true\r\n }\r\n },\r\n postCompany: {\r\n method: 'POST',\r\n url: baseApi + \"Company/Register\"\r\n },\r\n updateCompany: {\r\n method: 'PUT',\r\n url: baseApi + \"Company\"\r\n },\r\n getCompany: {\r\n method: 'GET',\r\n url: baseApi + \"Company\",\r\n isArray: false\r\n },\r\n getCompanyById: {\r\n method: 'GET',\r\n url: baseApi + \"Company/GetById\",\r\n isArray: false\r\n },\r\n listByCuit: {\r\n method: 'GET',\r\n url: baseApi + \"Company/ListByCuit\",\r\n isArray: true\r\n },\r\n list: {\r\n method: 'GET',\r\n url: baseApi + \"Company/List\",\r\n params: {\r\n limit: '@limit',\r\n offset: '@offset',\r\n query: '@query'\r\n }\r\n }\r\n };\r\n\r\n return $resource(baseApi + 'company', {}, actions);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('ContactUsAPI', function($resource) {\r\n\r\n var router = baseApi + 'api/ContactUs';\r\n \r\n var actions = {\r\n Send: {\r\n method: 'POST',\r\n url: router + \"/Send\"\r\n }\r\n };\r\n\r\n return $resource(router, {}, actions);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('ContractAPI', function ($resource) {\r\n var router = baseApi + 'api/Contract';\r\n \r\n var actions = {\r\n GetReport: {\r\n method: 'GET',\r\n url: router + \"/Report\"\r\n },\r\n Update: {\r\n method: 'Post',\r\n url: router + \"/Update\"\r\n },\r\n };\r\n return $resource(router, {}, actions);\r\n });\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('CreditCardAPI', function ($resource) {\r\n var router = baseApi + 'api/CreditCard';\r\n \r\n var actions = {\r\n GetReport: {\r\n method: 'GET',\r\n url: router + \"/Report/:CodUsuario\"\r\n },\r\n Create: {\r\n method: 'POST',\r\n url: router + \"/Create\"\r\n },\r\n SetDefault: {\r\n method: 'POST',\r\n url: router + \"/SetDefault\"\r\n },\r\n Delete: {\r\n method: 'POST',\r\n url: router + \"/Delete\"\r\n },\r\n };\r\n return $resource(router, {}, actions);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('DownloadAPI', function ($resource) {\r\n var router = baseApi + 'Download';\r\n\r\n var actions = {\r\n NonResident: {\r\n method: 'GET',\r\n url: router + \"/NonResident\"\r\n },\r\n }\r\n\r\n return $resource(router, {}, actions);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('DownloadBankSlipLogAPI', function ($resource) {\r\n\r\n var router = baseApi + 'api/DownloadBankSlipLog';\r\n \r\n var actions = {\r\n ListBy: {\r\n method: 'GET',\r\n url: router + \"/ListBy\"\r\n },\r\n saveLog: {\r\n method: 'POST',\r\n url: router + \"/Save\"\r\n }\r\n };\r\n\r\n return $resource(router, {}, actions);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('DownloadLicenseLogAPI', function ($resource) {\r\n\r\n var router = baseApi + 'api/DownloadLicenseLog';\r\n\r\n var actions = {\r\n ListBy: {\r\n method: 'GET',\r\n url: router + \"/ListBy\"\r\n },\r\n saveLog: {\r\n method: 'POST',\r\n url: router + \"/Save\"\r\n }\r\n };\r\n\r\n return $resource(router, {}, actions);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('EnderecoAPI', function($resource) {\r\n\r\n var actions = {\r\n listCountries: {\r\n method: 'GET',\r\n url: baseApi + \"address/country\",\r\n isArray: true\r\n },\r\n listStates: {\r\n method: 'GET',\r\n url: baseApi + \"address/state\",\r\n isArray: true\r\n },\r\n listCities: {\r\n method: 'GET',\r\n url: baseApi + \"address/city\",\r\n isArray: true\r\n }\r\n };\r\n\r\n return $resource(baseApi + 'Address', {}, actions);\r\n })\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('EndUserInvoiceAPI', function($resource) {\r\n\r\n var router = baseApi + 'api/EndUserTitle';\r\n\r\n var actions = {\r\n CreateCommissionBatch: {\r\n method: 'POST',\r\n url: router + \"/CreateCommissionBatch\",\r\n isArray: false\r\n },\r\n GetTitlesByFilter: {\r\n method: 'GET',\r\n url: router + \"/GetTitlesByFilter\",\r\n isArray: false\r\n },\r\n GetBatchByFilter: {\r\n method: 'GET',\r\n url: router + \"/GetBatchByFilter\",\r\n isArray: false\r\n },\r\n DownloadExcel: {\r\n method: 'POST',\r\n url: router + \"/Excel\",\r\n isArray: false\r\n },\r\n GetXMLNfe: {\r\n method: 'GET',\r\n url: router + \"/GetXMLNfe\",\r\n isArray: false\r\n },\r\n GetCSP: {\r\n method: 'GET',\r\n url: router + \"/GetCSP\",\r\n isArray: false\r\n }\r\n };\r\n\r\n return $resource(router, {}, actions);\r\n })\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('EnubeAPI', function ($resource) {\r\n\r\n var router = baseApi + 'api/Enube';\r\n\r\n var actions = {\r\n 'integrate': {\r\n method: 'GET',\r\n url: router + \"/Integrate\", \r\n }\r\n }\r\n\r\n return $resource(router, {}, actions);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('ExpressPortalAPI', function($resource) {\r\n\r\n var router = baseApi + 'api/ExpressPortal';\r\n\r\n var actions = {\r\n GetParams: {\r\n method: 'GET',\r\n url: router + \"/GetParams\"\r\n },\r\n LoginComstor: {\r\n method: 'GET',\r\n url: router + \"/GetComstorParams\"\r\n },\r\n LoginWestcon: {\r\n method: 'GET',\r\n url: router + \"/GetWestconParams\"\r\n },\r\n LoginConfigurador: {\r\n method: 'GET',\r\n url: router + \"/GetConfiguradorParams\"\r\n }\r\n };\r\n\r\n return $resource(router, {}, actions);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .service('$layout', function (\r\n $rootScope\r\n ) {\r\n\r\n var me = this;\r\n\r\n $('body').on('click', '.app-overlay', function () {\r\n\r\n me.toggleOverlay();\r\n\r\n $rootScope.$broadcast('overlayclicked');\r\n\r\n });\r\n\r\n this.middleware = function(event, next, current) {\r\n \r\n $rootScope.pageCls = \"\";\r\n\r\n if (next.templateUrl) {\r\n\r\n var uri = next.templateUrl.replace('app/pages/', '').replace('.html', '').split('/');\r\n\r\n $rootScope.pageCls = 'page-'+uri[0]+'-'+uri.splice(-1);\r\n\r\n }\r\n\r\n if (next.contentOnly === true) $rootScope.pageCls += ' page--content-only';\r\n };\r\n\r\n this.toggleOverlay = function(isTransparent) {\r\n\r\n isTransparent = isTransparent || false;\r\n\r\n var $overlay = $('.app-overlay');\r\n\r\n if ($overlay.hasClass('app-overlay--visible')) {\r\n\r\n $overlay\r\n .removeClass('app-overlay--visible')\r\n .removeClass('app-overlay--transparent');\r\n\r\n } else {\r\n\r\n $overlay.addClass('app-overlay--visible');\r\n\r\n if (isTransparent) $overlay.addClass('app-overlay--transparent');\r\n }\r\n };\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.alert', [])\r\n .factory('AlertFactory', function (\r\n $rootScope, \r\n $mdDialog\r\n ) {\r\n return {\r\n showPopup: function (message, parent) {\r\n var alert = $mdDialog.alert({\r\n autoWrap: false,\r\n parent: parent,\r\n title: 'TD SYNNEX',\r\n textContent: message,\r\n ok: 'OK'\r\n });\r\n $mdDialog.show(alert);\r\n },\r\n showPopupFinally: function (message, callback, parent) {\r\n var alert = $mdDialog.alert({\r\n autoWrap: false,\r\n parent: parent,\r\n title: 'TD SYNNEX',\r\n textContent: message,\r\n ok: 'OK'\r\n });\r\n $mdDialog.show(alert).finally(callback);\r\n }\r\n };\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('OrderAPI', function ($resource) {\r\n\r\n var router = baseApi + 'api/Order';\r\n\r\n var actions = {\r\n listOrders: {\r\n method: 'GET',\r\n url: router + \"/ListOrders\"\r\n },\r\n GetOrderDetails: {\r\n method: 'GET',\r\n url: router + \"/GetDetails\"\r\n },\r\n GetCSPDetails: {\r\n method: 'GET',\r\n url: router + \"/GetCSPDetails\"\r\n },\r\n listOrdersByReport205: {\r\n method: 'GET',\r\n url: router + \"/ListOrdersByReport205\"\r\n },\r\n GetOrderTracking: {\r\n method: 'GET',\r\n url: router + \"/GetOrderTracking\"\r\n },\r\n ListOrderHistoryByFilter: {\r\n method: 'GET',\r\n url: router + \"/ListOrderHistoryByFilter\"\r\n },\r\n GetOrderHistoryDetail: {\r\n method: 'GET',\r\n url: router + \"/GetHistoryDetail\"\r\n },\r\n listPartNumbers: {\r\n method: 'GET',\r\n url: router + \"/ListPartNumbers\",\r\n isArray: true\r\n },\r\n resellerOrderExcel: {\r\n method: 'POST',\r\n url: router + \"/ResellerOrderExcel\"\r\n },\r\n orderTrackerExcel: {\r\n method: 'POST',\r\n url: router + \"/OrderTrackerExcel\"\r\n },\r\n orderReport205Excel: {\r\n method: 'POST',\r\n url: router + \"/OrderReport205Excel\"\r\n },\r\n GetLastMileTracking: {\r\n method: 'GET',\r\n url: router + \"/GetLastMileTracking\" \r\n },\r\n ReportDelayedOrder: {\r\n method: 'POST',\r\n url: router + \"/ReportDelayedOrder\"\r\n },\r\n ReportDelayedOrderFromHistory: {\r\n method: 'POST',\r\n url: router + \"/ReportDelayedOrderFromHistory\"\r\n }\r\n };\r\n\r\n return $resource(baseApi + 'order', [], actions);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('OrderLicenseAPI', function ($resource) {\r\n\r\n var router = baseApi + 'api/OrderLicense';\r\n\r\n var actions = {\r\n ListLicensesByFilter: {\r\n method: 'GET',\r\n url: router + \"/ListLicensesByFilter\"\r\n },\r\n DownloadContract: {\r\n method: 'GET',\r\n url: router + \"/DownloadContract\"\r\n },\r\n DownloadLicense: {\r\n method: 'POST',\r\n url: router + \"/DownloadLicense\"\r\n },\r\n DownloadLicenseLote: {\r\n method: 'POST',\r\n url: router + \"/DownloadLicenseLote\"\r\n },\r\n Send: {\r\n method: 'POST',\r\n url: router + \"/Send\"\r\n }\r\n };\r\n\r\n return $resource(router, [], actions);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .factory('$permission', function (\r\n $auth,\r\n $location,\r\n $rootScope,\r\n $session,\r\n $translate,\r\n $document,\r\n toastr\r\n ) {\r\n\r\n var permission = {};\r\n\r\n permission.isAllowedModule = function (userPermissions, arrPermissions) {\r\n\r\n if (_.isEmpty(userPermissions)) return false;\r\n\r\n var values = userPermissions.map(function (v) { return v.Value });\r\n\r\n return _.intersection(values, arrPermissions).length > 0;\r\n };\r\n\r\n permission.isAllowedRegion = function (userRegion, arrRegions) {\r\n if (arrRegions === false) return true;\r\n\r\n return arrRegions.filter(function(r) { return r == userRegion; }).length > 0;\r\n };\r\n\r\n permission.isAllowedBatch = function (batch) {\r\n\r\n for (var i = 0; i < batch.length; i++) {\r\n \r\n if (permission.isAllowed(batch[i].arrPermissions, batch[i].arrRegions)) {\r\n \r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n permission.isAllowedRegionSpecific = function (arrRegions) {\r\n if (arrRegions === false) return false;\r\n\r\n var user = $auth.getCurrentUser();\r\n if (_.isEmpty(user)) return false;\r\n\r\n return arrRegions.filter(function(r) { return r == user.CodERP; }).length > 0;\r\n }\r\n\r\n permission.isAllowed = function (arrPermissions, arrRegions) {\r\n \r\n if (arrRegions === undefined) debugger;\r\n\r\n var user = $auth.getCurrentUser();\r\n\r\n if (_.isEmpty(user)) return false;\r\n\r\n if (permission.isAllowedRegion(user.CodERP, arrRegions)) {\r\n\r\n return permission.isAllowedModule(user.Permissions, arrPermissions);\r\n\r\n } else {\r\n\r\n return false;\r\n }\r\n };\r\n\r\n permission.middleware = function(event, next, current) {\r\n\r\n var user = $rootScope.user = $auth.getCurrentUser();\r\n \r\n $rootScope.multiCountry = $session.get('multiCountry') || [];\r\n\r\n if (next.allowGuest === undefined) next.allowGuest = true;\r\n\r\n // Controle de usuĆ”rio vindo de outro sistema\r\n var allowGuest = $session.get('isAllowGuest') || next.allowGuest;\r\n\r\n $rootScope.showMenu = !allowGuest;\r\n $rootScope.referrer = current ? current.originalPath : '';\r\n\r\n if (current && next.originalPath == \"/contact-us\") {\r\n\r\n $document.params = current.params;\r\n\r\n $document.referrer = current.originalPath;\r\n }\r\n\r\n // Se a rota permitir convidado, deixar passar.\r\n if (next.allowGuest) return;\r\n\r\n // Rota NĆ£o Encontrada, redirect para o Dashboard.\r\n if (next.redirectTo === \"/\") return;\r\n\r\n // Tratamento da Rota de /auth/logout\r\n if (next.redirectTo === \"/auth/logout\") return;\r\n\r\n // Se o usuĆ”rio nĆ£o estiver logado e a rota nĆ£o permitir\r\n if (!$auth.isLogged()) {\r\n\r\n event.preventDefault();\r\n \r\n $location.url('/auth/login');\r\n }\r\n\r\n // Se nĆ£o existe usuĆ”rio logado, deixar passar.\r\n if (_.isEmpty(user)) return;\r\n\r\n $rootScope.codERP = user.CodERP;\r\n \r\n if (permission.isAllowedRegion(user.CodERP, next.arrRegions)) {\r\n\r\n if (permission.isAllowedModule(user.Permissions, next.arrPermissions)) {\r\n\r\n return;\r\n\r\n } else {\r\n\r\n event.preventDefault();\r\n\r\n $translate('Auth.NotAllowed').then(function (translation) {\r\n toastr.warning(translation);\r\n });\r\n }\r\n \r\n } else {\r\n\r\n event.preventDefault();\r\n\r\n $translate('Auth.RegionNotAllowed').then(function (translation) {\r\n toastr.warning(translation);\r\n });\r\n }\r\n };\r\n\r\n return permission;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('ProductAPI', function ($resource) {\r\n\r\n var router = baseApi + 'Product';\r\n\r\n var actions = {\r\n GetPriceInformation: {\r\n method: 'GET',\r\n url: router + \"/GetPriceListInformation\"\r\n },\r\n GetPriceListData: {\r\n method: 'GET',\r\n url: router + \"/GetPriceList\"\r\n },\r\n ListStockItems: {\r\n method: 'GET',\r\n url: router + \"/ListStockItems\"\r\n },\r\n ListStockItemsByFilter: {\r\n method: 'GET',\r\n url: router + \"/ListStockItemsByFilter\"\r\n },\r\n ListFatorVendorByCustomerId: {\r\n method: 'GET',\r\n url: router + \"/ListFatorVendorByCustomerId\"\r\n }\r\n };\r\n\r\n return $resource(router, {}, actions);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('ProposalAPI', function($resource) {\r\n\r\n var router = baseApi + 'api/Proposal';\r\n\r\n \tvar actions = {\r\n ListVendors: {\r\n method: 'GET',\r\n url: router + \"/ListVendors\",\r\n isArray: true\r\n },\r\n ListProposal: {\r\n method: 'GET',\r\n url: router + \"/ListProposalByFilter\"\r\n },\r\n getProposal: {\r\n method: 'GET',\r\n url: router + \"/GetProposal\"\r\n },\r\n \t\tSendAcceptProposal: {\r\n \t\t\tmethod: 'POST',\r\n url: router + \"/SendAcceptProposal\"\r\n },\r\n \t\tSendProposalEmail: {\r\n \t\t\tmethod: 'POST',\r\n url: router + \"/SendProposalEmail\"\r\n },\r\n RevalidateProposal: {\r\n method: 'POST',\r\n url: router + \"/RevalidateProposal\"\r\n }\r\n \t};\r\n \r\n return $resource(router, {}, actions);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('QuoteAPI', function($resource) {\r\n\r\n var router = baseApi + 'api/Quote';\r\n\r\n \tvar actions = {\r\n GetQuote: {\r\n method: 'GET',\r\n url: router + \"/:quoteId\"\r\n },\r\n ListQuotes: {\r\n method: 'GET',\r\n url: router + \"/ListFromNext\"\r\n },\r\n SendAcceptQuote: {\r\n method: 'POST',\r\n url: router + \"/SendAcceptQuote\"\r\n },\r\n SendQuoteEmail: {\r\n method: 'POST',\r\n url: router + \"/SendQuoteEmail\"\r\n },\r\n GenerateSimulator: {\r\n method: 'GET',\r\n url: router + \"/:quoteId/Simulator\"\r\n },\r\n GetResellerForAutoComplete: {\r\n method: 'GET',\r\n url: router + \"/Reseller\",\r\n isArray: true\r\n },\r\n GetResellerFromEconomicIdAutoComplete: {\r\n method: 'GET',\r\n url: router + \"/Reseller\",\r\n isArray: true\r\n },\r\n GetSalesOrderAddress: {\r\n method: 'GET',\r\n url: router + \"/:customerId/Customer/Adresses\"\r\n },\r\n GetContactCustomers: {\r\n method: 'GET',\r\n url: router + \"/:customerId/Customer/Contact\"\r\n },\r\n PutSalesOrderAddress: {\r\n method: 'PUT',\r\n url: router + \"/SalesOrderAddress/:salesOrderAddressId\"\r\n },\r\n PostSalesOrderAddress: {\r\n method: 'PUT',\r\n url: router + \"/SalesOrderAddress/:salesOrderId\"\r\n },\r\n PostPostTemporaryQuoteAddress: {\r\n method: 'POST',\r\n url: router + \"/TemporaryQuoteAddress\"\r\n },\r\n GetTemporaryQuoteAddress: {\r\n method: 'GET',\r\n url: router + \"/TemporaryQuoteAddress\"\r\n },\r\n GetEconomicGroupForAutoComplete: {\r\n method: 'GET',\r\n url: router + \"/EconomicGroup\",\r\n isArray: true\r\n },\r\n RevalidateQuote: {\r\n method: 'POST',\r\n url: router + \"/RevalidateQuote\"\r\n },\r\n \t};\r\n \r\n return $resource(router, {}, actions);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('ResellerInvoiceAPI', function($resource) {\r\n\r\n var router = baseApi + 'api/ResellerTitle';\r\n\r\n var actions = {\r\n ListAll: {\r\n method: 'GET',\r\n url: router + \"/GetTitles\",\r\n isArray: true\r\n },\r\n DownloadExcel: {\r\n method: 'POST',\r\n url: router + \"/ResellerTitleExcel\",\r\n isArray: false\r\n },\r\n DownloadInvoicePdf: {\r\n method: 'POST',\r\n url: router + \"/GetInvoicePdf\",\r\n isArray: false\r\n },\r\n SendReceipt: {\r\n method: 'POST',\r\n url: router + \"/SendReceipt\",\r\n isArray: false\r\n },\r\n GetNFeCALA: {\r\n method: 'GET',\r\n url: router + \"/GetNFeCALA\",\r\n isArray: false\r\n }\r\n };\r\n\r\n return $resource(router, {}, actions);\r\n\r\n }) \r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('RmaAPI', function($resource) {\r\n\r\n var router = baseApi + 'api/Rma';\r\n \r\n var actions = {\r\n Send: {\r\n method: 'POST',\r\n url: router + \"/Send\"\r\n }\r\n };\r\n\r\n return $resource(router, {}, actions);\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .factory('$session', function ($window) {\r\n\r\n var $session = {};\r\n\r\n var sessionStorage = $window.sessionStorage;\r\n var storage = $window.localStorage;\r\n\r\n $session.clear = function () {\r\n storage.clear()\r\n };\r\n\r\n $session.set = function functionName(key, data) {\r\n var value = getValue(data);\r\n storage.setItem(key, value);\r\n }\r\n\r\n $session.get = function functionName(key, default_) {\r\n var item = storage.getItem(key) || default_;\r\n return formatValue(item);\r\n }\r\n\r\n $session.unset = function functionName(key) {\r\n storage.removeItem(key);\r\n }\r\n\r\n function formatValue(item) {\r\n return isJsonString(item) ? JSON.parse(item) : item;\r\n }\r\n\r\n function isJsonString(str) {\r\n try {\r\n JSON.parse(str);\r\n } catch (e) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n function getValue(data) {\r\n var value = null;\r\n if (_.isObject(data)) {\r\n\r\n value = JSON.stringify(data);\r\n } else if (_.isString(data)) {\r\n value = data;\r\n } else {\r\n throw 'Erro de implementaĆ§Ć£o. O tipo ' + typeof data + 'nĆ£o Ć© suportado pela sessĆ£o.';\r\n }\r\n return value;\r\n }\r\n\r\n $session.setSessionStorage = function functionName(key, data) {\r\n var value = getValue(data);\r\n sessionStorage.setItem(key, value);\r\n }\r\n\r\n $session.getSessionStorage = function functionName(key) {\r\n var item = sessionStorage.getItem(key);\r\n return formatValue(item);\r\n }\r\n\r\n $session.unsetSessionStorage = function functionName(key) {\r\n sessionStorage.removeItem(key);\r\n }\r\n\r\n\r\n return $session;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.API')\r\n .service('UserAPI', function($resource, $rootScope) {\r\n\r\n var router = baseApi + 'User';\r\n\r\n var actions = {\r\n Create: {\r\n method: 'POST',\r\n url: router + \"/Create\"\r\n },\r\n list: {\r\n method: 'GET',\r\n url: router\r\n },\r\n update: {\r\n method: 'PUT',\r\n url: router\r\n },\r\n PreLogin: {\r\n method: 'POST',\r\n url: router + \"/PreLogin\",\r\n params: {\r\n login: '@login',\r\n password: '@password'\r\n }\r\n }\r\n };\r\n\r\n return $resource(router, {}, actions);\r\n })\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.services')\r\n .service('$auth', \r\n function (\r\n $location,\r\n $redirect,\r\n $rootScope,\r\n $encryption,\r\n $session\r\n ) {\r\n\r\n var vm = this;\r\n\r\n vm.user = null;\r\n\r\n vm.getCurrentUser = function () {\r\n\r\n if (!vm.user) {\r\n \r\n var stored = $session.get('user');\r\n \r\n if (stored) {\r\n \r\n if (!_.isObject(stored)) {\r\n \r\n try {\r\n vm.user = JSON.parse($encryption.decrypt(stored));\r\n } catch (e) {}\r\n \r\n } else {\r\n \r\n //INNO-5833\r\n $session.clear();\r\n window.location.reload();\r\n }\r\n }\r\n }\r\n \r\n return vm.user;\r\n }\r\n\r\n $rootScope.user = vm.getCurrentUser() || {};\r\n\r\n vm.login = function (data, redirect, isAllowGuest) {\r\n // INNO-4295\r\n $session.clear();\r\n\r\n $session.set('isAllowGuest', (isAllowGuest || false).toString());\r\n $session.set('token', data.access_token);\r\n $session.set('refresh_token', data.refresh_token);\r\n $session.set('user', data.oUser);\r\n $session.set('reqTime', Date.now().toString());\r\n $session.set('multiCountry', data.multiCountry || []);\r\n\r\n $rootScope.user = vm.getCurrentUser() || {};\r\n $rootScope.multiCountry = JSON.parse(data.multiCountry);\r\n\r\n if (!$session.getSessionStorage('lastRoute')) {\r\n var url = redirect || '/';\r\n $location.url(url);\r\n } else {\r\n window.location.href = $session.getSessionStorage('lastRoute');\r\n $session.unsetSessionStorage('lastRoute');\r\n }\r\n\r\n var referer = $session.getSessionStorage('referer');\r\n var redirectPortal = $session.getSessionStorage('redirectPortal');\r\n\r\n if (referer && redirectPortal) {\r\n $redirect.redirect(redirectPortal, referer);\r\n }\r\n\r\n };\r\n\r\n vm.logout = function () {\r\n $location.url('/auth/login');\r\n $rootScope.user = null;\r\n vm.user = null;\r\n $session.clear();\r\n };\r\n\r\n vm.isLogged = function () {\r\n var token = $session.get('token');\r\n return !_.isEmpty(token);\r\n };\r\n\r\n return vm;\r\n })\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.services')\r\n .service('$encryption', \r\n function (\r\n ) {\r\n\r\n this.decrypt = function (data) {\r\n\r\n if (!data) return;\r\n\r\n return decrypt(data, 'PP#$&Ss10n&!4P1*');\r\n }\r\n\r\n this.AESEncrypt = function (data) {\r\n if (!data) return;\r\n\r\n return AESEncrypt(data);\r\n }\r\n\r\n this.AESDecrypt = function (data) {\r\n if (!data) return;\r\n\r\n return AESDecrypt(data);\r\n }\r\n\r\n return this;\r\n })\r\n\r\n var keySize = 256;\r\n var iterations = 1000;\r\n var key = CryptoJS.enc.Hex.parse(\"f5d6ea0eef4738063677cfd4bba15804\");\r\n var iv = CryptoJS.enc.Hex.parse(\"be213cb71ab706f6168a469ee7310b41\"); \r\n\r\n function decrypt (transitmessage, pass) {\r\n\r\n var hexResult = base64ToHex(transitmessage)\r\n \r\n var salt = CryptoJS.enc.Hex.parse(hexResult.substr(0, 64));\r\n var iv = CryptoJS.enc.Hex.parse(hexResult.substr(64, 32));\r\n var encrypted = hexToBase64(hexResult.substring(96));\r\n \r\n var key = CryptoJS.PBKDF2(pass, salt, {\r\n keySize: keySize/32,\r\n iterations: iterations\r\n });\r\n \r\n var decrypted = CryptoJS.AES.decrypt(encrypted, key, { \r\n iv: iv, \r\n padding: CryptoJS.pad.Pkcs7,\r\n mode: CryptoJS.mode.CBC\r\n \r\n })\r\n \r\n return decrypted.toString(CryptoJS.enc.Utf8); \r\n }\r\n\r\n function hexToBase64(str) {\r\n\r\n return btoa(String.fromCharCode.apply(null,\r\n str.replace(/\\r|\\n/g, \"\").replace(/([\\da-fA-F]{2}) ?/g, \"0x$1 \").replace(/ +$/, \"\").split(\" \"))\r\n );\r\n\r\n }\r\n\r\n function base64ToHex(str) {\r\n\r\n for (var i = 0, bin = atob(str.replace(/[ \\r\\n]+$/, \"\")), hex = []; i < bin.length; ++i) {\r\n var tmp = bin.charCodeAt(i).toString(16);\r\n if (tmp.length === 1) tmp = \"0\" + tmp;\r\n hex[hex.length] = tmp;\r\n }\r\n\r\n return hex.join(\"\");\r\n }\r\n\r\n function AESEncrypt(message) {\r\n return CryptoJS.AES.encrypt(message, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }).toString();\r\n }\r\n\r\n function AESDecrypt(encrypted) {\r\n return CryptoJS.AES.decrypt(encrypted, key, { iv: iv }).toString(CryptoJS.enc.Utf8);\r\n }\r\n\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.services')\r\n .service('$enube', function (\r\n $rootScope\r\n ) {\r\n\r\n var vm = this;\r\n var countryIso = \"\";\r\n\r\n vm.getEnubeUrl = function(){\r\n countryIso = $rootScope.user.IpInfo.CountryIso;\r\n\r\n switch (countryIso) {\r\n case \"BR\":\r\n return \"https://westcon.enube.me/mtc.js\";\r\n\r\n case \"CO\":\r\n return \"https://westconcol.enube.me/mtc.js\";\r\n };\r\n }\r\n\r\n vm.callEnube = function () {\r\n var enubeUrl = this.getEnubeUrl();\r\n if (enubeUrl && hostname == \"partnerportal.lac.tdsynnex.com\") {\r\n (function(w,d,t,u,n,a,m){w['MauticTrackingObject']=n;\r\n w[n]=w[n]||function(){(w[n].q=w[n].q||[]).push(arguments)},a=d.createElement(t),\r\n m=d.getElementsByTagName(t)[0];a.async=1;a.src=u;m.parentNode.insertBefore(a,m)\r\n })(window,document,'script',enubeUrl,'mt');\r\n\r\n mt('send', 'pageview');\r\n }\r\n };\r\n\r\n return vm;\r\n })\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.services')\r\n .service('$formatter', \r\n function (\r\n ) {\r\n\r\n var vm = this;\r\n\r\n vm.formatDate = function (value, defaultValue) {\r\n if (defaultValue === undefined) defaultValue = '-';\r\n\r\n if (!value) {\r\n return defaultValue;\r\n } else {\r\n var date = new Date(value);\r\n return date > new Date('2000-01-01 00:00:01') ? date.toLocaleDateString() : defaultValue;\r\n }\r\n };\r\n\r\n vm.formatDateTime = function (value, defaultValue) {\r\n if (defaultValue === undefined) defaultValue = '-';\r\n\r\n if (!value) {\r\n return defaultValue;\r\n } else {\r\n var date = new Date(value);\r\n return date > new Date('2000-01-01 00:00:01') ? date.toLocaleString() : defaultValue;\r\n }\r\n };\r\n\r\n vm.formatUnknown = function (value, defaultValue) {\r\n if (defaultValue === undefined) defaultValue = '-';\r\n return value || defaultValue;\r\n };\r\n\r\n vm.onlyDigits = function (text) {\r\n return text.replace(/\\D/g,'');\r\n };\r\n\r\n vm.removeSpecialCharacters = function (value){\r\n return value.replace(/[^\\w\\s]/gi, '');\r\n };\r\n\r\n return vm;\r\n })\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.services')\r\n .service('$helper', \r\n function (\r\n $rootScope,\r\n SweetAlertFactory\r\n ) {\r\n\r\n var vm = this;\r\n\r\n function getTargetMessage(error) {\r\n if (error.target && error.target.response) {\r\n\r\n var response = JSON.parse(error.target.response);\r\n var data = response.error || {message: response.Message};\r\n\r\n if (data && !_.isEmpty(data.message)) {\r\n return data.message;\r\n } \r\n }\r\n\r\n return null;\r\n }\r\n\r\n function getDataMessage(error) {\r\n var data = error.data;\r\n\r\n if (data) {\r\n return data.message || data.Message || data.error.message || data.error;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n vm.exceptionHandler = function (message) {\r\n switch (message) {\r\n\r\n case \"UserPortalNotFound\":\r\n SweetAlertFactory.showTranslation(\"toastrErrorAuth\");\r\n break;\r\n\r\n default:\r\n SweetAlertFactory.showTranslation(message);\r\n break;\r\n }\r\n }\r\n\r\n vm.throwException = function (error, sweetAlertConfig) {\r\n sweetAlertConfig = sweetAlertConfig || {};\r\n console.error(error);\r\n $rootScope.loading = false;\r\n \r\n /// Usado no cadastro de empresa.\r\n var testMessage = \"O mĆ³dulo de filtragem de solicitaĆ§Ć£o estĆ” configurado para negar uma solicitaĆ§Ć£o que exceda o tamanho de conteĆŗdo solicitado\";\r\n if (error.target && error.target.response.includes(testMessage)) {\r\n SweetAlertFactory.showTranslation('RegisterCompany.ErrorFileSize', null, sweetAlertConfig);\r\n } else if (error.target && error.target.response.includes(\"File Extension not allowed\")) {\r\n SweetAlertFactory.showTranslation('RegisterCompany.ErrorInvalidFile', null, sweetAlertConfig);\r\n } else {\r\n var targetMessage = getTargetMessage(error);\r\n var dataMessage = getDataMessage(error);\r\n var message = error.mensagem || error.Mensagem || error.errorMessage || error.ErrorMessage || targetMessage;\r\n\r\n if (typeof message === 'string') {\r\n vm.exceptionHandler(message);\r\n\r\n } else if (typeof dataMessage === 'string') {\r\n SweetAlertFactory.showTranslation(dataMessage, null, sweetAlertConfig);\r\n\r\n } else {\r\n SweetAlertFactory.showTranslation(\"toastrError\", null, sweetAlertConfig); \r\n }\r\n }\r\n };\r\n\r\n vm.getBrowser = function () {\r\n // Opera 8.0+\r\n var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;\r\n if (isOpera) return 'Opera';\r\n\r\n // Firefox 1.0+\r\n var isFirefox = typeof InstallTrigger !== 'undefined';\r\n if (isFirefox) return 'Firefox';\r\n\r\n // Safari 3.0+ \"[object HTMLElementConstructor]\" \r\n var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === \"[object SafariRemoteNotification]\"; })(!window['safari'] || (typeof safari !== 'undefined' && safari.pushNotification));\r\n if (isSafari) return 'Safari';\r\n\r\n // Internet Explorer 6-11\r\n var isIE = /*@cc_on!@*/false || !!document.documentMode;\r\n if (isIE) return 'Internet Explorer';\r\n\r\n // Edge 20+\r\n var isEdge = !isIE && !!window.StyleMedia;\r\n if (isEdge) return 'Edge';\r\n\r\n // Chrome 1 - 71\r\n var isChrome = !!window.chrome //&& (!!window.chrome.webstore || !!window.chrome.runtime);\r\n if (isChrome) return 'Chrome';\r\n\r\n // Blink engine detection\r\n var isBlink = (isChrome || isOpera) && !!window.CSS;\r\n if (isBlink) return 'blink';\r\n\r\n return '';\r\n };\r\n\r\n vm.getPopupUnblockLink = function (browser) {\r\n var browser = browser || vm.getBrowser();\r\n\r\n switch (browser.toLowerCase()) {\r\n case 'chrome':\r\n return 'https://support.google.com/chrome/answer/95472'\r\n // return 'https://tutortec.wordpress.com/2014/08/12/como-bloquear-ou-desbloquear-pop-ups-no-chrome/'\r\n // return 'https://kb.iu.edu/d/atdz#chrome'\r\n case 'firefox':\r\n return 'https://support.mozilla.org/pt-BR/kb/bloqueador-de-pop-up-excecoes-e-solucoes-de-problemas'\r\n // return 'https://tutortec.wordpress.com/2014/08/12/como-bloquear-ou-desbloquear-pop-ups-no-firefox/'\r\n // return 'https://kb.iu.edu/d/atdz#firefox'\r\n case 'edge':\r\n return 'https://support.microsoft.com/pt-br/help/4026392/microsoft-edge-block-pop-ups'\r\n case 'internet explorer':\r\n return 'https://support.microsoft.com/pt-br/help/17479/windows-internet-explorer-11-change-security-privacy-settings'\r\n // return 'https://tutortec.wordpress.com/2014/08/12/como-bloquear-ou-desbloquear-pop-ups-no-internet-explorer/'\r\n // return 'https://kb.iu.edu/d/atdz#ie9'\r\n case 'safari':\r\n return 'https://tutortec.wordpress.com/2014/08/12/como-bloquear-ou-desbloquear-pop-ups-no-safari/'\r\n // return 'https://kb.iu.edu/d/atdz#safari'\r\n case 'opera':\r\n return 'https://tutortec.wordpress.com/2014/08/12/como-bloquear-ou-desbloquear-pop-ups-no-opera/'\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n return vm;\r\n })\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.services')\r\n .service('$pbi', function (\r\n $helper,\r\n $rootScope, \r\n $auth\r\n ) {\r\n\r\n var vm = this;\r\n\r\n vm.toggleFullscreen = function () {\r\n var el = document.documentElement;\r\n var reqFS = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullScreen;\r\n var exitFS = document.exitFullscreen || document.webkitCancelFullScreen ||document.mozCancelFullScreen || document.msExitFullscreen;\r\n var notFS = !document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement \r\n\r\n if (notFS && reqFS) {\r\n reqFS.call(el);\r\n } else if (exitFS) {\r\n exitFS.call(document);\r\n }\r\n };\r\n\r\n vm.mountFilters = function (filters) {\r\n var _filters = [];\r\n\r\n for (var i = 0; i < filters.length; i++) {\r\n _filters.push({\r\n target: {\r\n table: filters[i].table,\r\n column: filters[i].column\r\n },\r\n operator: filters[i].operator,\r\n values: filters[i].values\r\n });\r\n } \r\n\r\n return _filters;\r\n };\r\n\r\n vm.getConfigByData = function (data) {\r\n var config = {\r\n type: 'report',\r\n tokenType: window['powerbi-client'].models.TokenType.Embed,\r\n accessToken: data.embedReportToken,\r\n embedUrl: data.embedReportURL,\r\n settings: {\r\n filterPaneEnabled: false \r\n },\r\n id: data.reportId\r\n };\r\n\r\n return config;\r\n };\r\n\r\n vm.startPowerBI = function (response) {\r\n\r\n $rootScope.loading = false;\r\n\r\n if (response.success === false) {\r\n $helper.throwException(response);\r\n }\r\n\r\n var config = vm.getConfigByData(response.data);\r\n\r\n config.filters = vm.mountFilters(response.data.filters);\r\n\r\n // Get a reference to the embedded dashboard HTML element\r\n var $element = document.getElementById('dashboardContainer');\r\n\r\n // Embed the dashboard and display it within the div container.\r\n var dashboard = powerbi.embed($element, config);\r\n\r\n // Dashboard.off removes a given event handler if it exists.\r\n dashboard.off(\"loaded\");\r\n\r\n // Dashboard.on will add an event handler which prints to Log window.\r\n dashboard.on(\"loaded\", function () {\r\n console.log(\"Loaded\");\r\n });\r\n\r\n dashboard.on(\"error\", function (event) {\r\n console.log(event.detail);\r\n dashboard.off(\"error\");\r\n });\r\n };\r\n\r\n return vm;\r\n })\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.services')\r\n .service('$redirect', \r\n function (\r\n $helper,\r\n $rootScope,\r\n $session,\r\n $translate,\r\n ExpressPortalAPI,\r\n SweetAlertFactory\r\n ) {\r\n\r\n var vm = this;\r\n\r\n vm.redirect = function (redirectTo, referer) {\r\n if (!redirectTo) return false;\r\n\r\n var browser = $helper.getBrowser();\r\n var popupUnblockLink = $helper.getPopupUnblockLink(browser);\r\n var div = document.createElement('div');\r\n var params = { referer: referer, redirectTo: redirectTo.replace('TD SYNNEX ', '') };\r\n var innerHTML = ''\r\n\r\n if (redirectTo.includes('lenovo')) {\r\n redirectTo = \"TD SYNNEX EXPRESS\"\r\n } else if (redirectTo.includes('comstorexpress')) {\r\n redirectTo = \"TD SYNNEX EXPRESS CISCO\"\r\n }\r\n\r\n $translate(['YouWillBeRedirectedTo', 'PopupBlocked', 'PopupUnblockOn'])\r\n .then(function (translations) {\r\n if (popupUnblockLink) {\r\n innerHTML = '
'\r\n innerHTML += translations['PopupUnblockOn'] + ' ' + browser + '';\r\n }\r\n div.innerHTML = '' + redirectTo + '

' + translations['PopupBlocked'] + innerHTML\r\n\r\n SweetAlertFactory.showWithFinally(\r\n translations['YouWillBeRedirectedTo'],\r\n function (confirm) {\r\n $rootScope.loading = true;\r\n\r\n $rootScope.gaExternalAccessEvent(redirectTo.replace(' ', ''));\r\n ExpressPortalAPI.GetParams(params, vm.afterGetExpressPortalCredentials, $helper.throwException);\r\n },\r\n div\r\n );\r\n });\r\n };\r\n\r\n vm.afterGetExpressPortalCredentials = function (data) {\r\n $session.unsetSessionStorage('referer');\r\n $session.unsetSessionStorage('redirectPortal');\r\n\r\n if(!data.success){\r\n $rootScope.loading = false;\r\n SweetAlertFactory.showTranslation(data.message);\r\n return;\r\n } \r\n\r\n if (data.url)\r\n {\r\n $session.setSessionStorage('redirectPortal', data.url);\r\n }\r\n\r\n var params = {\r\n user: data.user,\r\n access_token: data.access_token,\r\n signature: data.signature,\r\n developer_mode: data.developer_mode\r\n };\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n },\r\n url: data.url,\r\n data: params,\r\n crossDomain: true,\r\n async: false,\r\n xhrFields: {\r\n withCredentials: true\r\n },\r\n\r\n success: vm.afterLoginExpressPortal,\r\n error: vm.afterLoginExpressPortal\r\n });\r\n };\r\n\r\n vm.afterLoginExpressPortal = function (jqXHR, textStatus, errorThrown) {\r\n if ($session.getSessionStorage('redirectPortal')) {\r\n window.open($session.getSessionStorage('redirectPortal')); \r\n } \r\n $rootScope.loading = false;\r\n };\r\n\r\n return vm;\r\n })\r\n})();\r\n\n!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.swal=e():t.swal=e()}(this,function(){return function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"\",e(e.s=8)}([function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var o=\"swal-button\";e.CLASS_NAMES={MODAL:\"swal-modal\",OVERLAY:\"swal-overlay\",SHOW_MODAL:\"swal-overlay--show-modal\",MODAL_TITLE:\"swal-title\",MODAL_TEXT:\"swal-text\",ICON:\"swal-icon\",ICON_CUSTOM:\"swal-icon--custom\",CONTENT:\"swal-content\",FOOTER:\"swal-footer\",BUTTON_CONTAINER:\"swal-button-container\",BUTTON:o,CONFIRM_BUTTON:o+\"--confirm\",CANCEL_BUTTON:o+\"--cancel\",DANGER_BUTTON:o+\"--danger\",BUTTON_LOADING:o+\"--loading\",BUTTON_LOADER:o+\"__loader\"},e.default=e.CLASS_NAMES},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.getNode=function(t){var e=\".\"+t;return document.querySelector(e)},e.stringToNode=function(t){var e=document.createElement(\"div\");return e.innerHTML=t.trim(),e.firstChild},e.insertAfter=function(t,e){var n=e.nextSibling;e.parentNode.insertBefore(t,n)},e.removeNode=function(t){t.parentElement.removeChild(t)},e.throwErr=function(t){throw t=t.replace(/ +(?= )/g,\"\"),\"SweetAlert: \"+(t=t.trim())},e.isPlainObject=function(t){if(\"[object Object]\"!==Object.prototype.toString.call(t))return!1;var e=Object.getPrototypeOf(t);return null===e||e===Object.prototype},e.ordinalSuffixOf=function(t){var e=t%10,n=t%100;return 1===e&&11!==n?t+\"st\":2===e&&12!==n?t+\"nd\":3===e&&13!==n?t+\"rd\":t+\"th\"}},function(t,e,n){\"use strict\";function o(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,\"__esModule\",{value:!0}),o(n(25));var r=n(26);e.overlayMarkup=r.default,o(n(27)),o(n(28)),o(n(29));var i=n(0),a=i.default.MODAL_TITLE,s=i.default.MODAL_TEXT,c=i.default.ICON,l=i.default.FOOTER;e.iconMarkup='\\n
',e.titleMarkup='\\n
\\n',e.textMarkup='\\n
',e.footerMarkup='\\n
\\n'},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(1);e.CONFIRM_KEY=\"confirm\",e.CANCEL_KEY=\"cancel\";var r={visible:!0,text:null,value:null,className:\"\",closeModal:!0},i=Object.assign({},r,{visible:!1,text:\"Cancel\",value:null}),a=Object.assign({},r,{text:\"OK\",value:!0});e.defaultButtonList={cancel:i,confirm:a};var s=function(t){switch(t){case e.CONFIRM_KEY:return a;case e.CANCEL_KEY:return i;default:var n=t.charAt(0).toUpperCase()+t.slice(1);return Object.assign({},r,{text:n,value:t})}},c=function(t,e){var n=s(t);return!0===e?Object.assign({},n,{visible:!0}):\"string\"==typeof e?Object.assign({},n,{visible:!0,text:e}):o.isPlainObject(e)?Object.assign({visible:!0},n,e):Object.assign({},n,{visible:!1})},l=function(t){for(var e={},n=0,o=Object.keys(t);n=0&&w.splice(e,1)}function s(t){var e=document.createElement(\"style\");return t.attrs.type=\"text/css\",l(e,t.attrs),i(t,e),e}function c(t){var e=document.createElement(\"link\");return t.attrs.type=\"text/css\",t.attrs.rel=\"stylesheet\",l(e,t.attrs),i(t,e),e}function l(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function u(t,e){var n,o,r,i;if(e.transform&&t.css){if(!(i=e.transform(t.css)))return function(){};t.css=i}if(e.singleton){var l=h++;n=g||(g=s(e)),o=f.bind(null,n,l,!1),r=f.bind(null,n,l,!0)}else t.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(n=c(e),o=p.bind(null,n,e),r=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=s(e),o=d.bind(null,n),r=function(){a(n)});return o(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;o(t=e)}else r()}}function f(t,e,n,o){var r=n?\"\":o.css;if(t.styleSheet)t.styleSheet.cssText=x(e,r);else{var i=document.createTextNode(r),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}function d(t,e){var n=e.css,o=e.media;if(o&&t.setAttribute(\"media\",o),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}function p(t,e,n){var o=n.css,r=n.sourceMap,i=void 0===e.convertToAbsoluteUrls&&r;(e.convertToAbsoluteUrls||i)&&(o=y(o)),r&&(o+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+\" */\");var a=new Blob([o],{type:\"text/css\"}),s=t.href;t.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}var m={},b=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}}(function(){return window&&document&&document.all&&!window.atob}),v=function(t){var e={};return function(n){return void 0===e[n]&&(e[n]=t.call(this,n)),e[n]}}(function(t){return document.querySelector(t)}),g=null,h=0,w=[],y=n(15);t.exports=function(t,e){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");e=e||{},e.attrs=\"object\"==typeof e.attrs?e.attrs:{},e.singleton||(e.singleton=b()),e.insertInto||(e.insertInto=\"head\"),e.insertAt||(e.insertAt=\"bottom\");var n=r(t,e);return o(n,e),function(t){for(var i=[],a=0;athis.length)&&-1!==this.indexOf(t,e)}),Array.prototype.includes||Object.defineProperty(Array.prototype,\"includes\",{value:function(t,e){if(null==this)throw new TypeError('\"this\" is null or not defined');var n=Object(this),o=n.length>>>0;if(0===o)return!1;for(var r=0|e,i=Math.max(r>=0?r:o-Math.abs(r),0);i=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(19),e.setImmediate=setImmediate,e.clearImmediate=clearImmediate},function(t,e,n){(function(t,e){!function(t,n){\"use strict\";function o(t){\"function\"!=typeof t&&(t=new Function(\"\"+t));for(var e=new Array(arguments.length-1),n=0;n1)for(var n=1;n',e.default=e.modalMarkup},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(0),r=o.default.OVERLAY,i='
\\n
';e.default=i},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(0),r=o.default.ICON;e.errorIconMarkup=function(){var t=r+\"--error\",e=t+\"__line\";return'\\n
\\n \\n \\n
\\n '},e.warningIconMarkup=function(){var t=r+\"--warning\";return'\\n \\n \\n \\n '},e.successIconMarkup=function(){var t=r+\"--success\";return'\\n \\n \\n\\n
\\n
\\n '}},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(0),r=o.default.CONTENT;e.contentMarkup='\\n
\\n\\n
\\n'},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(0),r=o.default.BUTTON_CONTAINER,i=o.default.BUTTON,a=o.default.BUTTON_LOADER;e.buttonMarkup='\\n
\\n\\n \\n\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n'},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(4),r=n(2),i=n(0),a=i.default.ICON,s=i.default.ICON_CUSTOM,c=[\"error\",\"warning\",\"success\",\"info\"],l={error:r.errorIconMarkup(),warning:r.warningIconMarkup(),success:r.successIconMarkup()},u=function(t,e){var n=a+\"--\"+t;e.classList.add(n);var o=l[t];o&&(e.innerHTML=o)},f=function(t,e){e.classList.add(s);var n=document.createElement(\"img\");n.src=t,e.appendChild(n)},d=function(t){if(t){var e=o.injectElIntoModal(r.iconMarkup);c.includes(t)?u(t,e):f(t,e)}};e.default=d},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(2),r=n(4),i=function(t){navigator.userAgent.includes(\"AppleWebKit\")&&(t.style.display=\"none\",t.offsetHeight,t.style.display=\"\")};e.initTitle=function(t){if(t){var e=r.injectElIntoModal(o.titleMarkup);e.textContent=t,i(e)}},e.initText=function(t){if(t){var e=document.createDocumentFragment();t.split(\"\\n\").forEach(function(t,n,o){e.appendChild(document.createTextNode(t)),n0}).forEach(function(t){b.classList.add(t)})}n&&t===c.CONFIRM_KEY&&b.classList.add(s),b.textContent=r;var g={};return g[t]=i,f.setActionValue(g),f.setActionOptionsFor(t,{closeModal:p}),b.addEventListener(\"click\",function(){return u.onAction(t)}),m},p=function(t,e){var n=r.injectElIntoModal(l.footerMarkup);for(var o in t){var i=t[o],a=d(o,i,e);i.visible&&n.appendChild(a)}0===n.children.length&&n.remove()};e.default=p},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(3),r=n(4),i=n(2),a=n(5),s=n(6),c=n(0),l=c.default.CONTENT,u=function(t){t.addEventListener(\"input\",function(t){var e=t.target,n=e.value;a.setActionValue(n)}),t.addEventListener(\"keyup\",function(t){if(\"Enter\"===t.key)return s.onAction(o.CONFIRM_KEY)}),setTimeout(function(){t.focus(),a.setActionValue(\"\")},0)},f=function(t,e,n){var o=document.createElement(e),r=l+\"__\"+e;o.classList.add(r);for(var i in n){var a=n[i];o[i]=a}\"input\"===e&&u(o),t.appendChild(o)},d=function(t){if(t){var e=r.injectElIntoModal(i.contentMarkup),n=t.element,o=t.attributes;\"string\"==typeof n?f(e,n,o):e.appendChild(n)}};e.default=d},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(1),r=n(2),i=function(){var t=o.stringToNode(r.overlayMarkup);document.body.appendChild(t)};e.default=i},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(5),r=n(6),i=n(1),a=n(3),s=n(0),c=s.default.MODAL,l=s.default.BUTTON,u=s.default.OVERLAY,f=function(t){t.preventDefault(),v()},d=function(t){t.preventDefault(),g()},p=function(t){if(o.default.isOpen)switch(t.key){case\"Escape\":return r.onAction(a.CANCEL_KEY)}},m=function(t){if(o.default.isOpen)switch(t.key){case\"Tab\":return f(t)}},b=function(t){if(o.default.isOpen)return\"Tab\"===t.key&&t.shiftKey?d(t):void 0},v=function(){var t=i.getNode(l);t&&(t.tabIndex=0,t.focus())},g=function(){var t=i.getNode(c),e=t.querySelectorAll(\".\"+l),n=e.length-1,o=e[n];o&&o.focus()},h=function(t){t[t.length-1].addEventListener(\"keydown\",m)},w=function(t){t[0].addEventListener(\"keydown\",b)},y=function(){var t=i.getNode(c),e=t.querySelectorAll(\".\"+l);e.length&&(h(e),w(e))},x=function(t){if(i.getNode(u)===t.target)return r.onAction(a.CANCEL_KEY)},_=function(t){var e=i.getNode(u);e.removeEventListener(\"click\",x),t&&e.addEventListener(\"click\",x)},k=function(t){o.default.timer&&clearTimeout(o.default.timer),t&&(o.default.timer=window.setTimeout(function(){return r.onAction(a.CANCEL_KEY)},t))},O=function(t){t.closeOnEsc?document.addEventListener(\"keyup\",p):document.removeEventListener(\"keyup\",p),t.dangerMode?v():g(),y(),_(t.closeOnClickOutside),k(t.timer)};e.default=O},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var o=n(1),r=n(3),i=n(37),a=n(38),s={title:null,text:null,icon:null,buttons:r.defaultButtonList,content:null,className:null,closeOnClickOutside:!0,closeOnEsc:!0,dangerMode:!1,timer:null},c=Object.assign({},s);e.setDefaults=function(t){c=Object.assign({},s,t)};var l=function(t){var e=t&&t.button,n=t&&t.buttons;return void 0!==e&&void 0!==n&&o.throwErr(\"Cannot set both 'button' and 'buttons' options!\"),void 0!==e?{confirm:e}:n},u=function(t){return o.ordinalSuffixOf(t+1)},f=function(t,e){o.throwErr(u(e)+\" argument ('\"+t+\"') is invalid\")},d=function(t,e){var n=t+1,r=e[n];o.isPlainObject(r)||void 0===r||o.throwErr(\"Expected \"+u(n)+\" argument ('\"+r+\"') to be a plain object\")},p=function(t,e){var n=t+1,r=e[n];void 0!==r&&o.throwErr(\"Unexpected \"+u(n)+\" argument (\"+r+\")\")},m=function(t,e,n,r){var i=typeof e,a=\"string\"===i,s=e instanceof Element;if(a){if(0===n)return{text:e};if(1===n)return{text:e,title:r[0]};if(2===n)return d(n,r),{icon:e};f(e,n)}else{if(s&&0===n)return d(n,r),{content:e};if(o.isPlainObject(e))return p(n,r),e;f(e,n)}};e.getOpts=function(){for(var t=[],e=0;e 0) {\r\n var file = evt.target.files[0];\r\n var reader = new FileReader();\r\n reader.addEventListener(\"load\", function () {\r\n scope.$emit(\"onFileUpload\", {\r\n name: file.name,\r\n value: this.result\r\n });\r\n });\r\n reader.readAsDataURL(file);\r\n }\r\n angular.element(document.getElementById('chooseOneFile')).val(null);\r\n });\r\n }\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .directive('myMask', myMask)\r\n\r\n /** @ngInject */\r\n function myMask () {\r\n return {\r\n restrict: \"A\",\r\n require: 'ngModel',\r\n link: function (scope, el, attrs, ctrl) {\r\n var myMask = _fnParseMask(attrs.myMask);\r\n var clearOnBlur = false;\r\n var allowInvalid = \"myMaskAllowInvalid\" in attrs;\r\n var submitMasked = \"myMaskSubmitMasked\" in attrs;\r\n var tokens = {\r\n 0: { pattern: /\\d/ },\r\n 9: { pattern: /[1-9]/ },\r\n S: { pattern: /[a-zA-Z]/ },\r\n A: { pattern: /[a-zA-Z]/, transform: function (v) { return v.toLocaleUpperCase() }},\r\n a: { pattern: /[a-zA-Z]/, transform: function (v) { return v.toLocaleLowerCase() }},\r\n U: { pattern: /[0-9a-zA-Z]/, transform: function (v) { return v.toLocaleUpperCase() }},\r\n l: { pattern: /[0-9a-zA-Z]/, transform: function (v) { return v.toLocaleLowerCase() }},\r\n H: { pattern: /[0-9a-fA-F]/, transform: function (v) { return v.toLocaleUpperCase() }},\r\n '*': { pattern: /[0-9a-zA-Z]/ }\r\n }\r\n var placeholderChar = '_';\r\n var escapeChar = '!';\r\n\r\n function _fnParseMask (str) {\r\n var parsed;\r\n\r\n try {\r\n parsed = JSON.parse(str.replace(/'/g, '\"'));\r\n } catch (e) {\r\n parsed = [str];\r\n }\r\n\r\n return _fnHandleRepetition(parsed);\r\n }\r\n\r\n function _fnHandleRepetition (masks) {\r\n var _myMask = [];\r\n\r\n masks.forEach(function (m) { \r\n _myMask = _myMask.concat(_fnParseRepetition(m));\r\n });\r\n\r\n _checkDuplicateSizes(_myMask);\r\n\r\n return _myMask;\r\n }\r\n\r\n function _fnParseRepetition (mask) {\r\n var newMask = [];\r\n\r\n var match = /(.){(\\d+),(\\d+)}/.exec(mask);\r\n\r\n if (!match) return [mask];\r\n\r\n var fullMatch = match[0];\r\n var digit = match[1];\r\n var initial = parseInt(match[2]);\r\n var final = parseInt(match[3]);\r\n\r\n if (final <= initial) throw new Error(\"Repetition range not defined very well. From \" + initial + \" to \" + final);\r\n\r\n for (var i=initial; i<=final; i++) {\r\n newMask.push(mask.replace(fullMatch, digit.repeat(i)));\r\n }\r\n\r\n return newMask;\r\n }\r\n\r\n function _checkDuplicateSizes (masks) {\r\n var sizesArr = masks.map(function (m) { return m.length });\r\n var uniqSizeSet = new Set(sizesArr);\r\n\r\n if (uniqSizeSet.size < sizesArr.length) throw new Error(\"Bad definition. Multiple masks with same size\");\r\n }\r\n\r\n function _fnMaskOne (value, mask) {\r\n value = value || '';\r\n mask = mask || '';\r\n\r\n var indexMask = 0\r\n var indexValue = 0\r\n var maskedValue = ''\r\n\r\n while (indexMask < mask.length && indexValue < value.length) {\r\n var currentMask = mask[indexMask]\r\n var currentValue = value[indexValue]\r\n var myMasker = tokens[currentMask]\r\n\r\n if (myMasker && myMasker !== escapeChar) {\r\n if (myMasker.pattern.test(currentValue)) {\r\n maskedValue += myMasker.transform ? myMasker.transform(currentValue) : currentValue\r\n indexMask++\r\n }\r\n indexValue++\r\n } else {\r\n if (myMasker && myMasker === escapeChar) {\r\n indexMask++ \r\n currentMask = mask[indexMask]\r\n }\r\n maskedValue += currentMask\r\n if (currentValue === currentMask) indexValue++ \r\n indexMask++\r\n }\r\n }\r\n \r\n var fixedValue = ''\r\n while (indexMask < mask.length) {\r\n var currentMask = mask[indexMask]\r\n if (tokens[currentMask]) {\r\n fixedValue = ''\r\n break\r\n }\r\n fixedValue += currentMask\r\n indexMask++\r\n }\r\n \r\n maskedValue += fixedValue;\r\n \r\n ctrl.$setValidity('myMask', _fnIsInputValid(maskedValue, mask));\r\n\r\n return maskedValue\r\n };\r\n\r\n function _fnApplyMask (value, masks) {\r\n masks = masks.sort(function (a, b) { return a.length - b.length });\r\n \r\n for (var i = 0; i < masks.length; i++){\r\n var currentMask = masks[i]\r\n var nextMask = masks[i+1] \r\n // if (!nextMask || _fnMaskOne(value, nextMask).length < nextMask.replace(RegExp(escapeChar, 'g'), '').length) {\r\n if (!nextMask || value.length <= currentMask.replace(RegExp(escapeChar, 'g'), '').length) {\r\n return _fnMaskOne(value, currentMask)\r\n }\r\n }\r\n\r\n return '' \r\n };\r\n\r\n function _fnIsInputValid (value, mask) {\r\n if (allowInvalid || value.length == mask.replace(RegExp(escapeChar, 'g'), '').length) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n function _fnClear (value) {\r\n return submitMasked ? value : value.replace(/(\\W|_)/g, '');\r\n };\r\n\r\n el.bind('input', function (evt) {\r\n ctrl.$setViewValue(_fnApplyMask(ctrl.$viewValue, myMask));\r\n ctrl.$render();\r\n });\r\n\r\n el.bind('blur', function (evt) {\r\n if(clearOnBlur && ctrl.$invalid){\r\n ctrl.$setViewValue('');\r\n ctrl.$render();\r\n }\r\n });\r\n\r\n ctrl.$parsers.unshift(_fnClear);\r\n }\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .directive('myModalToolbar', myModalToolbar)\r\n\r\n /** @ngInject */\r\n function myModalToolbar () {\r\n return {\r\n restrict: \"A\",\r\n templateUrl: \"app/directives/my-modal/my-modal-toolbar.html\"\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .directive(\"formUser\", function () {\r\n return {\r\n restrict: \"AE\",\r\n templateUrl: \"app/components/company-registry/form.html\"\r\n };\r\n })\r\n\r\n .directive(\"iconRemove\", function () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/components/company-registry/components/icon-remove.html\",\r\n };\r\n })\r\n\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n\r\n .directive('itemMenu', itemMenu)\r\n .directive('slides', slides)\r\n .directive('powerBi', powerBi);\r\n\r\n /** @ngInject */\r\n function itemMenu () {\r\n return {\r\n restrict: \"AE\",\r\n templateUrl: \"app/components/dashboard/card.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function slides () {\r\n return {\r\n restrict: \"AE\",\r\n templateUrl: \"app/components/dashboard/slides.html\"\r\n };\r\n }\r\n\r\n /* @ngInject */\r\n function powerBi () {\r\n return {\r\n restrict: \"AE\",\r\n templateUrl: \"app/components/dashboard/powerbi.html\"\r\n };\r\n }\r\n\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('my')\r\n .directive('iquoteRedirect', function ($rootScope, $sce) {\r\n return {\r\n scope: {},\r\n restrict: 'E',\r\n templateUrl: 'app/components/iquote/redirect.html',\r\n link: function (scope, $el) {\r\n\r\n if (!$rootScope.user) return;\r\n\r\n var url = ['UAT', 'PROD'].includes(ENV) ? 'https://live.hpiquote.net/aspx/GateKeeper.aspx' : 'https://uat.hpiquote.net/aspx/GateKeeper.aspx';\r\n\r\n scope.url = $sce.trustAsResourceUrl(url);\r\n scope.hostId = 'DWEBR04726';\r\n scope.token = 'D173592EA7C14A9FA1DA220D82D28D9B';\r\n scope.userEmail = $rootScope.user.Email;\r\n scope.userName = $rootScope.user.Login;\r\n scope.userId = $rootScope.user.UserId;\r\n scope.customerName = $rootScope.user.GroupEconomic.NomeGrupo;\r\n scope.customerZipCode = $rootScope.user.Code;\r\n scope.ref = document.location.protocol + '//' + document.location.hostname + (window.location.port ? ':'+window.location.port : '')\r\n }\r\n };\r\n });\r\n})();\r\n \r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n\r\n .directive('fileUpload', fileUpload)\r\n .directive('fileUploadOne', fileUploadOne)\r\n\r\n .directive('dlEnterKey', dlEnterKey)\r\n .directive('myFooter', myFooter)\r\n .directive('myLoading', myLoading)\r\n .directive('myPagination', myPagination)\r\n .directive('myNavbar', myNavbar)\r\n .directive('mySupport', mySupport)\r\n .directive('myTopo', myTopo)\r\n\r\n .directive('myIconAccept', myIconAccept)\r\n .directive('myIconAllDownload', myIconAllDownload)\r\n .directive('myIconDownload', myIconDownload)\r\n .directive('myIconInfo', myIconInfo)\r\n .directive('myIconSync', myIconSync)\r\n\r\n .directive('priceInfoFilter', priceInfoFilter)\r\n .directive('enubeScript', enubeScript)\r\n\r\n .directive('inputCurrency', inputCurrency)\r\n .directive('mySelectLocale', mySelectLocale);\r\n\r\n /** @ngInject */\r\n function fileUpload () {\r\n return {\r\n scope: true, //create a new scope\r\n link: function (scope, el, attrs) {\r\n el.bind('change', function (event) {\r\n var files = event.target.files;\r\n //iterate files since 'multiple' may be specified on the element\r\n for (var i = 0; i < files.length; i++) {\r\n //emit event upward\r\n scope.$emit(\"fileSelected\", { file: files[i] });\r\n }\r\n });\r\n }\r\n };\r\n };\r\n\r\n /** @ngInject */\r\n function dlEnterKey () {\r\n return function (scope, element, attrs) {\r\n element.bind(\"keydown keypress\", function (event) {\r\n var keyCode = event.which || event.keyCode;\r\n if (keyCode === 13) {\r\n scope.$apply(function () {\r\n scope.$eval(attrs.dlEnterKey);\r\n });\r\n event.preventDefault();\r\n }\r\n });\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function myFooter () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/components/global/partials/my-footer/index.html\"\r\n }\r\n }\r\n\r\n\r\n /** @ngInject */\r\n function myLoading () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/components/global/partials/my-loading/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function myNavbar () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/components/global/partials/my-navbar/index.html\",\r\n controller: \"NavBarCtrl\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function myPagination () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/components/global/partials/my-pagination/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function mySupport () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/components/global/partials/my-support/index.html\",\r\n link: function ($scope, $element, $attrs, $ctrl) {\r\n\r\n var $root = $(document);\r\n var scrolled = 0;\r\n var bottom = 0;\r\n\r\n $root.scroll(function () {\r\n\r\n scrolled = window.innerHeight + window.scrollY;\r\n\r\n if ((scrolled + 82) >= document.body.offsetHeight) {\r\n\r\n bottom = 82 - Math.abs(scrolled - document.body.offsetHeight);\r\n\r\n $root.find('.my-support').css('bottom', bottom);\r\n } else {\r\n $root.find('.my-support').css('bottom', 0);\r\n }\r\n\r\n });\r\n\r\n }\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function myTopo () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/components/global/partials/my-topo/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function myIconAccept () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/components/global/partials/icons/my-accept.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function myIconAllDownload () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/components/global/partials/icons/my-all-download.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function myIconDownload () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/components/global/partials/icons/my-download.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function myIconInfo () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/components/global/partials/icons/my-info.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function myIconSync () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/components/global/partials/icons/my-sync.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function priceInfoFilter () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/components/global/partials/price-info-filter/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function enubeScript () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/components/global/partials/enube/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function inputCurrency ($filter) { \r\n return {\r\n restrict: \"A\",\r\n require: \"ngModel\",\r\n link: function ($scope, $element, $attrs, $ctrl) {\r\n $element.bind(\"keyup\", function (event) {\r\n var dig = Number($attrs.inputCurrency || 2),\r\n val = '';\r\n if ($ctrl.$viewValue) {\r\n val = String(parseInt($ctrl.$viewValue.replace(/[^\\d]/gi, '')));\r\n if (isNaN(val)) {\r\n val = '';\r\n } else {\r\n if (val.length > dig) {\r\n val = parseInt(val.substring(0, val.length - dig))\r\n + '.' +\r\n val.substring(val.length - dig, val.length);\r\n } else if (parseInt(val) > 0) {\r\n val = '0.' + val.padStart(dig, '0');\r\n } else {\r\n val = '';\r\n }\r\n }\r\n }\r\n $ctrl.$setViewValue(val);\r\n $ctrl.$render();\r\n });\r\n }\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function mySelectLocale () { \r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/components/global/partials/my-select-locale/index.html\",\r\n controller: function($scope, $element, $attrs, $transclude, $session) { \r\n $scope.languages = [\r\n { key: 'pt-br', name: 'Language.Portuguese' },\r\n { key: 'es-ar', name: 'Language.Spanish' },\r\n { key: 'en', name: 'Language.English' }\r\n ];\r\n $scope.selectedLanguage = $session.get(\"locale\");\r\n }\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function fileUploadOne () {\r\n return {\r\n scope: true, //create a new scope\r\n link: function (scope, el, attrs) {\r\n el.bind('change', function (evt) {\r\n if (evt.target.files.length > 0) {\r\n var file = evt.target.files[0];\r\n var reader = new FileReader();\r\n reader.addEventListener(\"load\", function () {\r\n scope.$emit(\"onFileUploadOne\", {\r\n fileName: file.name,\r\n base64: this.result\r\n });\r\n });\r\n reader.readAsDataURL(file);\r\n }\r\n angular.element(document.getElementById('chooseOneFile')).val(null);\r\n });\r\n }\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .directive('myNewPagination', myNewPagination);\r\n\r\n /** @ngInject */\r\n function myNewPagination () {\r\n return {\r\n restrict: 'E',\r\n templateUrl: \"app/components/new-pagination/index.html\",\r\n controller: function ($scope, SweetAlertFactory) {\r\n // Para debuggar em caso da paginaĆ§Ć£o nĆ£o funcionar.\r\n console.log('scope: %s', $scope.$id);\r\n\r\n $scope.onNextPage = function (evt) {\r\n if (evt) evt.preventDefault();\r\n $scope.paginated.currentPage = ++$scope.paginated.currentPage;\r\n $scope.loadData();\r\n };\r\n \r\n $scope.onPrevPage = function (evt) {\r\n if (evt) evt.preventDefault();\r\n $scope.paginated.currentPage = --$scope.paginated.currentPage;\r\n $scope.loadData();\r\n };\r\n\r\n $scope.onChangeLimit = function (evt) {\r\n if (evt) evt.preventDefault();\r\n $scope.paginated.currentPage = 1;\r\n $scope.loadData();\r\n };\r\n\r\n $scope.onApplyFilter = function (evt) {\r\n if (evt) evt.preventDefault();\r\n if (fnValidateFilter()) {\r\n $scope.paginated.currentPage = 1;\r\n $scope.loadData();\r\n }\r\n };\r\n\r\n function fnValidateFilter () {\r\n \r\n if ($scope.filter.valueFrom || $scope.filter.valueUntil) {\r\n if (!$scope.filter.valueFrom || !$scope.filter.valueUntil) {\r\n SweetAlertFactory.showTranslation('Validate.ValueAlert');\r\n return false;\r\n }\r\n if (Number($scope.filter.valueFrom) > Number($scope.filter.valueUntil)) {\r\n SweetAlertFactory.showTranslation('Validate.ValueError');\r\n return false;\r\n }\r\n }\r\n \r\n if ($scope.filter.endSupportFrom || $scope.filter.endSupportUntil) {\r\n if (!$scope.filter.endSupportFrom || !$scope.filter.endSupportUntil) {\r\n SweetAlertFactory.showTranslation('Validate.DateAlert');\r\n return false;\r\n }\r\n if (new Date($scope.filter.endSupportFrom) > new Date($scope.filter.endSupportUntil)) {\r\n SweetAlertFactory.showTranslation('Validate.DateError');\r\n return false;\r\n }\r\n }\r\n \r\n return true;\r\n }\r\n }\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('my')\r\n .directive('tooltip', function () {\r\n return {\r\n scope: {\r\n title: \"@\",\r\n description: '=',\r\n direction: '@'\r\n },\r\n restrict: 'A',\r\n templateUrl: 'app/components/tooltip/tooltip.html',\r\n transclude: true,\r\n link: function (scope, $el) {\r\n\r\n scope.containerId = 'tooltip-container';\r\n scope.containerSelector = '#'+scope.containerId;\r\n scope.tooltipWrapperId = 'tooltip-wrapper-'+scope.$id;\r\n scope.tooltipWrapperSelector = '#'+scope.tooltipWrapperId;\r\n\r\n scope.isList = !_.isString(scope.description);\r\n scope.direction = scope.direction || 'ltr';\r\n\r\n if (!$(scope.containerSelector).length) {\r\n var container = document.createElement('div');\r\n container.id = scope.containerId;\r\n document.body.append(container);\r\n }\r\n\r\n $el.on('mouseenter mouseleave', '.tooltip-icon', function (ev) {\r\n\r\n var $wrapper = $(scope.tooltipWrapperSelector),\r\n $modal = $wrapper.find('.tooltip-modal');\r\n\r\n if (ev.type === 'mouseenter') {\r\n\r\n var rect = ev.currentTarget.getBoundingClientRect(),\r\n modalWidth = $modal.width(),\r\n modalHeight = $modal.height(),\r\n directionX = scope.direction,\r\n directionY = $(window).height() <= rect.bottom + modalHeight ? 'up' : 'down',\r\n scrollTop = $(document).scrollTop() || 0,\r\n x = directionX == 'rtl' ? (rect.right - modalWidth + 18) : (rect.left - 18),\r\n y = directionY == 'down' ? (rect.bottom + 10 + scrollTop) : (rect.top - modalHeight - 10 + scrollTop);\r\n\r\n $wrapper\r\n .removeClass('up down')\r\n .addClass(directionY == 'up' ? 'up' : 'down');\r\n \r\n $modal.css('transform', 'translate3d(' + x + 'px, ' + y + 'px, 0)');\r\n\r\n }\r\n\r\n $modal.toggleClass('is-visible');\r\n });\r\n\r\n $el.find('.tooltip-wrapper')\r\n .attr('id', scope.tooltipWrapperId)\r\n .appendTo(scope.containerSelector);\r\n\r\n scope.$on('$destroy', function (ev) {\r\n $(scope.tooltipWrapperSelector).remove();\r\n });\r\n }\r\n };\r\n });\r\n})();\r\n \r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .service('$codErp', function () {\r\n \r\n this.Brasil = 1;\r\n this.Cala = 2;\r\n this.Mexico = 3;\r\n this.Colombia = 4;\r\n this.Peru = 5;\r\n this.Equador = 6;\r\n this.Argentina = 7;\r\n this.Chile = 8;\r\n\r\n return this;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .controller('DeactivationModalCtrl', DeactivationModalCtrl);\r\n\r\n /** @ngInject */\r\n function DeactivationModalCtrl (\r\n $scope,\r\n $auth,\r\n $location,\r\n $mdDialog\r\n ) {\r\n $scope.keyTitle = 'Importante';\r\n \r\n $scope.cancel = function () {\r\n\r\n if ($auth.isLogged()) $auth.logout();\r\n\r\n $mdDialog.cancel();\r\n }\r\n\r\n $scope.redirectContactUs = function () {\r\n \r\n if ($auth.isLogged()) $auth.logout();\r\n\r\n $mdDialog.cancel();\r\n\r\n $location.path('contact-us');\r\n }\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .factory('$factory', function ($mdDialog) {\r\n\r\n this.deactivation = function () {\r\n $mdDialog.show({\r\n controller: 'DeactivationModalCtrl',\r\n templateUrl: 'app/global/modals/deactivation.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose: false\r\n });\r\n }\r\n\r\n return this;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.active-contracts')\r\n .controller('ActiveContractsCtrl', ActiveContractsCtrl);\r\n\r\n /** @ngInject */\r\n function ActiveContractsCtrl (\r\n $rootScope,\r\n $scope,\r\n $helper,\r\n $mdDialog,\r\n ContractAPI\r\n ) {\r\n /// Paginate\r\n $scope.limitOptions = [10, 25, 50, 75, 100]\r\n $scope.limit = $scope.limitOptions[0];\r\n\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n $scope.exibitionCount = 0;\r\n $scope.userCount = 0;\r\n $scope.query = \"\";\r\n\r\n $scope.filter = [];\r\n $scope.filteredList = [];\r\n\r\n $scope.nextPage = function (evt) {\r\n $scope.lastOffset = $scope.offset;\r\n $scope.offset = $scope.offset + $scope.limit;\r\n $scope.paginate($scope.filteredList);\r\n };\r\n\r\n $scope.prevPage = function (evt) {\r\n $scope.lastOffset = $scope.offset;\r\n $scope.offset = $scope.offset - $scope.limit;\r\n $scope.paginate($scope.filteredList);\r\n };\r\n\r\n $scope.hasNextPage = function (evt) {\r\n return $scope.offset + $scope.limit >= $scope.filteredList.length;\r\n };\r\n\r\n $scope.changeLimit = function (evt, limit) {\r\n $scope.limit = limit;\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n $scope.paginate($scope.filteredList);\r\n };\r\n \r\n $scope.paginate = function(itens) {\r\n $scope.filteredList = angular.isDefined(itens) ? itens : $scope.contractList\r\n $scope.displayedItems = $scope.filteredList.slice($scope.offset, $scope.offset + $scope.limit);\r\n };\r\n /// End Paginate\r\n\r\n function fnListByFilter () {\r\n ContractAPI.GetReport({ CustomerID: $rootScope.user.UserId, CodERP: $rootScope.user.CodERP }, function (response) {\r\n $scope.contractList = response.contracts\r\n $scope.paginate()\r\n }, $helper.throwException);\r\n }\r\n\r\n $scope.onShowDialog = function (evt, contract) {\r\n $mdDialog.show({\r\n controller: 'ManageContractsModalCtrl',\r\n templateUrl: 'app/pages/active-contracts/partials/modal/index.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n locals: {\r\n contract: contract\r\n }\r\n }).then(function(needreload) {\r\n $rootScope.loading = false;\r\n if (needreload) $scope.applyFilter(true);\r\n });\r\n };\r\n\r\n $scope.searchFromQuery = function(evt) {\r\n var filteredContracts = $scope.contractList.filter(function(obj) { \r\n return obj.numeroContrato.toLowerCase().includes($scope.filter.query.toLowerCase())\r\n || obj.produto.toLowerCase().includes($scope.filter.query.toLowerCase())\r\n || obj.vendor.toLowerCase().includes($scope.filter.query.toLowerCase()) ;\r\n })\r\n $scope.paginate(filteredContracts);\r\n };\r\n\r\n (function fnInit () {\r\n fnListByFilter()\r\n })();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n \r\n angular.module('my.pages.manage-users')\r\n .controller('ManageContractsModalCtrl', ManageContractsModalCtrl);\r\n \r\n /** @ngInject */\r\n function ManageContractsModalCtrl (\r\n $rootScope,\r\n $scope,\r\n $helper,\r\n $mdDialog,\r\n $translate,\r\n locals,\r\n SweetAlertFactory,\r\n CreditCardAPI,\r\n ContractAPI\r\n ) {\r\n \r\n $scope.onClose = $mdDialog.hide;\r\n\r\n $scope.cards = getCompanyCards()\r\n \r\n $scope.newCard = \"\";\r\n $scope.newCondicao = \"\";\r\n $scope.cardList = [];\r\n\r\n function getCompanyCards() {\r\n $rootScope.loading = true;\r\n CreditCardAPI.GetReport({ CodUsuario: $rootScope.user.UserId }, fnAfterGetCompanyCards, $helper.throwException);\r\n }\r\n function fnAfterGetCompanyCards (data) {\r\n $rootScope.loading = false;\r\n $scope.cardList = data.list\r\n };\r\n\r\n if (!_.isEmpty(locals.contract)) {\r\n $scope.contract = locals.contract;\r\n }\r\n \r\n $scope.onSave = function (evt) {\r\n if ($scope.formManageContract.$invalid) {\r\n SweetAlertFactory.showTranslation('Contract.InvalidForm');\r\n } else {\r\n ContractAPI.Update({ customerID: $rootScope.user.UserId, codERP: $rootScope.user.CodERP, ukeyCartao: $scope.newCard.ukeycartao, \r\n ukeyVendor: $scope.contract.ukey_Vendor }, fnAfterSave, $helper.throwException);\r\n }\r\n }\r\n \r\n\r\n function fnAfterSave (response) {\r\n $rootScope.loading = false;\r\n\r\n if (response.success === false) {\r\n\r\n $translate(response.errorMessage)\r\n .then(function (message) {\r\n SweetAlertFactory.show(message);\r\n })\r\n .catch(function (e) {\r\n console.error(e);\r\n SweetAlertFactory.showTranslation(\"InternalServerCardError\");\r\n });\r\n } else {\r\n \r\n $scope.onClose(true);\r\n\r\n SweetAlertFactory.showTranslationLote(\r\n [ 'AlteracaoComSucesso' ]);\r\n }\r\n }\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.auth')\r\n .controller('AuthAcceptProposalCtrl', AuthAcceptProposalCtrl);\r\n\r\n /** @ngInject */\r\n function AuthAcceptProposalCtrl(\r\n $rootScope,\r\n $scope,\r\n $auth,\r\n $helper,\r\n $localeService,\r\n $routeParams,\r\n $session,\r\n $translate,\r\n AuthAPI,\r\n toastr\r\n ) {\r\n\r\n $localeService.setLocale($session.get('locale'));\r\n\r\n $scope.user = {};\r\n\r\n var token = unserialize(b64DecodeUnicode($routeParams.token));\r\n\r\n $scope.login = function () {\r\n $rootScope.loading = true;\r\n\r\n var raw = \"grant_type=password\";\r\n raw += \"&username=\" + $scope.user.login;\r\n raw += \"&password=\" + $scope.user.password;\r\n\r\n AuthAPI.login(raw, fnAfterLogin, $helper.throwException);\r\n };\r\n\r\n function fnAfterLogin (data) {\r\n $rootScope.loading = false;\r\n\r\n $auth.login(data, '/proposal/' + token.proposta + '/' + token.versao);\r\n\r\n $translate('toastrWelcome').then(function (message) {\r\n toastr.success(message);\r\n });\r\n }\r\n\r\n function b64DecodeUnicode(str) {\r\n // Going backwards: from bytestream, to percent-encoding, to original string.\r\n return decodeURIComponent(atob(str).split('').map(function(c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n }).join(''));\r\n }\r\n\r\n function unserialize(str) {\r\n str = decodeURIComponent(str);\r\n var chunks = str.split('&'),\r\n obj = {};\r\n for(var c=0; c < chunks.length; c++) {\r\n var split = chunks[c].split('=', 2);\r\n obj[split[0]] = split[1];\r\n }\r\n return obj;\r\n }\r\n }\r\n})();\r\n\n(function () {\r\n\t'use strict';\r\n\r\n\tangular.module('my.pages.auth')\r\n\t.controller('AuthExpiredCtrl', AuthExpiredCtrl);\r\n\r\n\t/** @ngInject */\r\n\tfunction AuthExpiredCtrl(\r\n $rootScope,\r\n $scope,\r\n $auth,\r\n SweetAlertFactory\r\n ) {\r\n\r\n $auth.logout();\r\n SweetAlertFactory.showTranslation('toastrErrorSession');\r\n\t}\r\n})();\r\n\n(function () {\r\n\t'use strict';\r\n\r\n\tangular.module('my.pages.auth')\r\n\t.controller('AuthExternalLoginCtrl', AuthExternalLoginCtrl);\r\n\r\n\t/** @ngInject */\r\n\tfunction AuthExternalLoginCtrl(\r\n $rootScope,\r\n $auth,\r\n $helper,\r\n $routeParams,\r\n $translate,\r\n AuthAPI,\r\n toastr\r\n ) {\r\n\r\n var plaintext = null;\r\n\r\n function fnAfterLogin (response) {\r\n $rootScope.loading = false;\r\n if($routeParams.screen == \"proposal-business\"){\r\n $auth.login(response, '/proposal/business');\r\n }else{\r\n $auth.login(response);\r\n }\r\n $translate('toastrWelcome').then(function (message) {\r\n toastr.success(message);\r\n });\r\n }\r\n\r\n\t function fnLogin () {\r\n\t $rootScope.loading = true;\r\n\r\n\t var raw = \"grant_type=password\";\r\n raw += \"&username=\" + plaintext.user;\r\n raw += \"&password=\" + plaintext.password;\r\n\r\n\t AuthAPI.login(raw, fnAfterLogin, $helper.throwException);\r\n\t };\r\n\r\n function fnDecrypt () {\r\n var token = decodeURI($routeParams.token).replace(/ /g, '+');\r\n\r\n // Decrypt\r\n try {\r\n\r\n var bytes = CryptoJS.AES.decrypt(token, '6f65262c59');\r\n plaintext = JSON.parse(bytes.toString(CryptoJS.enc.Utf8));\r\n fnLogin();\r\n \r\n } catch (e) {\r\n\r\n $translate('toastrErrorToken').then(function (message) {\r\n toastr.error(message);\r\n });\r\n }\r\n }\r\n\r\n (function fnInit () {\r\n\r\n if (!$routeParams.token) {\r\n\r\n $translate('toastrErrorToken').then(function (message) {\r\n toastr.error(message);\r\n });\r\n\r\n } else {\r\n\r\n fnDecrypt();\r\n }\r\n })();\r\n\t}\r\n})();\r\n\n(function () {\r\n\t'use strict';\r\n\r\n\tangular.module('my.pages.auth')\r\n\t.controller('AuthLogoutCtrl', AuthLogoutCtrl);\r\n\r\n\t/** @ngInject */\r\n\tfunction AuthLogoutCtrl(\r\n $rootScope,\r\n $scope,\r\n $auth, \r\n $location, \r\n $translate, \r\n toastr\r\n ) {\r\n\r\n function fnInit () {\r\n\r\n $auth.logout();\r\n $location.url('/auth/login');\r\n $translate('toastrSuccessLogout').then(function (message) {\r\n toastr.success(message);\r\n });\r\n }\r\n\r\n fnInit();\r\n\t}\r\n})();\r\n\n(function () {\r\n\t'use strict';\r\n\r\n\tangular.module('my.pages.auth')\r\n\t.controller('AuthMyWestconCtrl', AuthMyWestconCtrl);\r\n\r\n\t/** @ngInject */\r\n\tfunction AuthMyWestconCtrl(\r\n $rootScope,\r\n $auth,\r\n $helper,\r\n $localeService,\r\n $location,\r\n $routeParams,\r\n $session,\r\n $translate,\r\n AuthAPI,\r\n toastr\r\n ) {\r\n\r\n\t\tvar redirectTo = null;\r\n\t\tvar redirectList = {\r\n pricelist: 'price-list',\r\n financialportal: 'invoice/reseller'\r\n\t\t};\r\n\r\n \tfunction decypt (token) {\r\n\t \r\n $rootScope.loading = true;\r\n\t AuthAPI.loginMyWestcon({ token: token }, login, $helper.throwException);\r\n \t};\r\n\r\n function login (response) {\r\n var raw = \"grant_type=password\";\r\n raw += \"&username=\" + encodeURIComponent(response.login);\r\n raw += \"&password=\" + encodeURIComponent(response.password);\r\n\r\n AuthAPI.login(raw, fnAfterLogin, $helper.throwException);\r\n };\r\n\r\n function fnAfterLogin (data) {\r\n $localeService.setLocale($session.get('locale')); \r\n $translate('toastrWelcome').then(function (message) {\r\n $auth.login(data, redirectTo, true)\r\n $rootScope.loading = false;\r\n toastr.success(message);\r\n });\r\n };\r\n\r\n \t(function fnInit () {\r\n\t \tif (!$routeParams.token || !$routeParams.redirect || !redirectList[$routeParams.redirect]) {\r\n\r\n $translate('toastrError').then(function (message) {\r\n \t\t\t\ttoastr.error(message);\r\n });\r\n \t\t\t$location.url('/auth/login');\r\n\r\n\t \t} else {\r\n\r\n\t\t\t\tredirectTo = redirectList[$routeParams.redirect]\r\n\t \t\tdecypt($routeParams.token);\r\n\t \t}\r\n \t})();\r\n\t}\r\n})();\r\n\n(function () {\r\n\t'use strict';\r\n\r\n\tangular.module('my.pages.auth')\r\n\t.controller('AuthPageCtrl', AuthPageCtrl);\r\n\r\n\t/** @ngInject */\r\n\tfunction AuthPageCtrl (\r\n $rootScope,\r\n $redirect,\r\n $scope,\r\n $auth,\r\n $helper,\r\n $localeService,\r\n $location,\r\n $routeParams,\r\n $session,\r\n $translate,\r\n AuthAPI,\r\n MultiCountryModal,\r\n SweetAlertFactory,\r\n UserAPI,\r\n toastr,\r\n $modalAuthFactory,\r\n $modalFactory,\r\n $codErp\r\n ) { \r\n\r\n $localeService.setLocale($session.get('locale'));\r\n\r\n\t $scope.user = {};\r\n\t $scope.recover = {};\r\n\r\n\t $scope.login = function (evt) {\r\n $rootScope.loading = true;\r\n\t \r\n var params = {\r\n login: encodeURIComponent($scope.user.login),\r\n password: encodeURIComponent($scope.user.password)\r\n };\r\n\r\n UserAPI.PreLogin(\r\n params,\r\n function (response) {\r\n var payload = JSON.parse(response.data);\r\n\r\n if (payload.Success === false) {\r\n $helper.throwException(payload);\r\n return;\r\n }\r\n\r\n var list = payload.GroupEconomicList || [];\r\n\r\n var raw = \"grant_type=password\";\r\n raw += \"&username=\" + params.login;\r\n raw += \"&password=\" + params.password;\r\n \r\n if (list.length === 0) {\r\n AuthAPI.login(raw, fnAfterLogin, $helper.throwException);\r\n } else { \r\n $rootScope.loading = false;\r\n \r\n MultiCountryModal.show(evt, list, function (customerID) {\r\n $rootScope.loading = true;\r\n raw += \"&customerID=\" + customerID;\r\n AuthAPI.login(raw, fnAfterLogin, $helper.throwException);\r\n });\r\n }\r\n }, \r\n $helper.throwException\r\n );\r\n };\r\n\r\n $scope.recoverPassword = function () {\r\n $rootScope.loading = true;\r\n $scope.recover.culture = $translate.use();\r\n AuthAPI.recoverPassword($scope.recover, fnAfterRecoverPassword, $helper.throwException);\r\n };\r\n\r\n $scope.onRedirect = function (evt, redirect) {\r\n $rootScope.loading = true;\r\n $rootScope.gaExternalAccessEvent(redirect.replace(' ', ''));\r\n $redirect.redirect(redirect);\r\n };\r\n\r\n $scope.AvisoSemUsuario = separa();\r\n \r\n function separa(){\r\n $translate('AvisoSemUsuario')\r\n .then(function (translation){ \r\n var texto = translation.split(\",\")[0] + translation.split(\",\")[1];\r\n $scope.AvisoSemUsuario = texto;\r\n })\r\n }\r\n\r\n function fnAfterLogin (data) {\r\n $rootScope.loading = false;\r\n $auth.login(data);\r\n $translate('toastrWelcome').then(function (message) {\r\n toastr.success(message);\r\n });\r\n }\r\n\r\n function fnAfterRecoverPassword (response) {\r\n $rootScope.loading = false;\r\n SweetAlertFactory.showTranslationWithFinally(\r\n 'toastrSuccessAuth',\r\n function () { $location.url('/auth/login') }\r\n );\r\n }\r\n\r\n (function fnInit () {\r\n if ($routeParams.referer) {\r\n $session.setSessionStorage('referer', $routeParams.referer);\r\n $session.setSessionStorage('redirectPortal', atob($routeParams.referer));\r\n }\r\n\r\n //Para habilitar/desabilitar o Comunicado na tela de login \r\n var noticeEnabled = false; \r\n\r\n if (noticeEnabled && $location.$$path == '/auth/login') {\r\n $modalAuthFactory.noticeLogin(null, {}, function () { });\r\n }\r\n })();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.auth')\r\n .controller('ResetPasswordCtrl', ResetPasswordCtrl);\r\n\r\n /** @ngInject */\r\n function ResetPasswordCtrl(\r\n $rootScope, \r\n $scope, \r\n $auth,\r\n $helper,\r\n $routeParams, \r\n $translate, \r\n AuthAPI, \r\n SweetAlertFactory\r\n ) {\r\n\r\n $rootScope.loading = true;\r\n\r\n $scope.login = null;\r\n $scope.password = null;\r\n\r\n var token = $routeParams.token;\r\n var login = null;\r\n var minPasswordLength = 6;\r\n\r\n $scope.resetPassword = function () {\r\n if ($scope.password.length < minPasswordLength ) {\r\n SweetAlertFactory.showTranslation(\"PasswordLength\");\r\n } else {\r\n $rootScope.loading = true;\r\n var params = { token: token, password: $scope.password, culture: $translate.use() };\r\n AuthAPI.resetPassword(params, fnAfterResetPassword, $helper.throwException);\r\n }\r\n };\r\n\r\n $scope.welcomePassword = function () {\r\n if ($scope.password.length < minPasswordLength ) {\r\n SweetAlertFactory.showTranslation(\"PasswordLength\");\r\n } else {\r\n $rootScope.loading = true;\r\n var params = { token: token, password: $scope.password, culture: $translate.use() };\r\n AuthAPI.welcomePassword(params, fnAfterWelcomePassword, $helper.throwException);\r\n }\r\n };\r\n\r\n function fnLoginPortal () {\r\n $rootScope.loading = true;\r\n var params = \"grant_type=password&username=\" + login + \"&password=\" + $scope.password;\r\n AuthAPI.login(params, fnAfterLoginPortal, $helper.throwException);\r\n };\r\n\r\n function fnAfterResetPassword (response) {\r\n $rootScope.loading = false;\r\n SweetAlertFactory.showTranslationWithFinally('Users.ResetedPassword', fnLoginPortal); \r\n }\r\n\r\n function fnAfterWelcomePassword (response) {\r\n $rootScope.loading = false;\r\n SweetAlertFactory.showTranslationWithFinally('Users.MessageCreatePassword', fnLoginPortal); \r\n }\r\n\r\n function fnAfterLoginPortal (response) {\r\n $rootScope.loading = false;\r\n $auth.login(response);\r\n }\r\n\r\n function fnRedirectLostPassword () {\r\n window.location = \"/#!/auth/lost-password\"\r\n }\r\n\r\n function fnAfterGetUser (response) {\r\n $rootScope.loading = false;\r\n if (response.sucesso === false) { \r\n if (response.mensagem == 'Auth.ExpiredToken') {\r\n SweetAlertFactory.showTranslationWithFinally(response.mensagem, fnRedirectLostPassword); \r\n }\r\n else {\r\n SweetAlertFactory.showTranslation(response.mensagem); \r\n }\r\n\r\n } else {\r\n $scope.login = login = response.login;\r\n }\r\n }\r\n\r\n (function fnInit () {\r\n AuthAPI.getUser({ token: token }, fnAfterGetUser, $helper.throwException);\r\n })();\r\n\t}\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.business-analytics')\r\n .controller('BusinessAnalyticsCtrl', BusinessAnalyticsCtrl);\r\n\r\n /** @ngInject */\r\n function BusinessAnalyticsCtrl(\r\n BusinessAnalyticsFactory,\r\n $rootScope,\r\n $scope, \r\n $auth,\r\n $helper,\r\n $pbi\r\n ) { \r\n\r\n /// INNO-2389 - Raviel Chausse Silveira\r\n $scope.toggleFullscreen = $pbi.toggleFullscreen;\r\n\r\n function fnInit () {\r\n $rootScope.loading = true;\r\n BusinessAnalyticsFactory.getDashboard($pbi.startPowerBI, $helper.throwException); \r\n }\r\n\r\n fnInit();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.company-registry')\r\n .controller('BaseCompanyRegistryCtrl', BaseCompanyRegistryCtrl);\r\n\r\n /** @ngInject */\r\n function BaseCompanyRegistryCtrl(\r\n $rootScope,\r\n $scope,\r\n SweetAlertFactory\r\n ) {\r\n\r\n // #region File Upload\r\n\r\n $scope.getFileDetails = function (e, type) {\r\n if (e.files.length) {\r\n $scope[type] = true;\r\n }\r\n else {\r\n $scope[type] = false;\r\n }\r\n\r\n $scope.$apply(function () {\r\n // Remove existing files of the same type\r\n $scope.files = $scope.files.filter(function (file) {\r\n return file.type !== type;\r\n });\r\n\r\n // Add new files\r\n for (var i = 0; i < e.files.length; i++) {\r\n var fileSize = e.files[i].size; // Get the size of the file\r\n $scope.files.push({ type: type, file: e.files[i], size: fileSize });\r\n\r\n // Create a new span element to display the file size\r\n var fileSizeElementId = 'file-size-' + type;\r\n var fileSizeElement = document.getElementById(fileSizeElementId);\r\n if (!fileSizeElement) {\r\n fileSizeElement = document.createElement('span');\r\n fileSizeElement.id = fileSizeElementId;\r\n // Append the span element next to the file input element\r\n e.parentNode.appendChild(fileSizeElement);\r\n }\r\n var fileSizeInMB = fileSize / 1024 / 1024; // Convert size to MB\r\n fileSizeElement.textContent = ' (' + fileSizeInMB.toFixed(2) + ' MB)';\r\n }\r\n });\r\n };\r\n\r\n $scope.removeOtherFile = function (key) {\r\n $scope.otherFileList = $scope.otherFileList.filter(function (value) { return value.key != key });\r\n };\r\n\r\n $scope.pushOtherFiles = function (elementHTML) {\r\n if ($scope.otherFiles) {\r\n $scope.$apply(function () {\r\n for (var i = 0; i < elementHTML.files.length; i++) {\r\n $scope.otherFileList.push({\r\n Name: $scope.otherFiles,\r\n Content: elementHTML.files.item(i),\r\n size: elementHTML.files.item(i).size,\r\n key: new Date().getTime()\r\n });\r\n }\r\n $scope.otherFiles = \"\";\r\n });\r\n } else {\r\n SweetAlertFactory.showTranslation('RegisterCompany.FileError');\r\n }\r\n angular.element(elementHTML).val(null);\r\n };\r\n\r\n $scope.checkFilesTotalSize = function (files) {\r\n if (!files || !files.length) return true;\r\n\r\n var totalSize = 0;\r\n for (var i = 0; i < files.length; i++) {\r\n totalSize += files[i].size;\r\n }\r\n return totalSize <= 26214400; // 25MB\r\n };\r\n\r\n // #endregion\r\n\r\n // #region Handle Http Responses\r\n\r\n $scope.handleHttpError = function (event) {\r\n $scope.$apply(function () {\r\n $rootScope.loading = false;\r\n });\r\n \r\n try {\r\n var xhr = event.target;\r\n var errorKey = \"httpError.unknown\";\r\n \r\n if (xhr.status) {\r\n switch (xhr.status) {\r\n case 400:\r\n errorKey = \"httpError.badRequest\";\r\n break;\r\n case 401:\r\n errorKey = \"httpError.unauthorized\";\r\n break;\r\n case 403:\r\n errorKey = \"httpError.forbidden\";\r\n break;\r\n case 404:\r\n errorKey = \"httpError.notFound\";\r\n break;\r\n case 500:\r\n errorKey = \"httpError.internalServerError\";\r\n break;\r\n default:\r\n errorKey = \"httpError.unexpected\";\r\n break;\r\n }\r\n \r\n try {\r\n var response = JSON.parse(xhr.responseText);\r\n if (response.error && response.error.message) {\r\n SweetAlertFactory.show(response.error.message);\r\n return;\r\n }\r\n if (response.detail) {\r\n SweetAlertFactory.show(response.detail);\r\n return;\r\n }\r\n } catch (e) {\r\n console.warn(\"Error parsing response JSON:\", e);\r\n }\r\n } else if (xhr.readyState === 4) {\r\n errorKey = \"httpError.network\";\r\n }\r\n \r\n console.error(\"HTTP Error Key:\", errorKey);\r\n SweetAlertFactory.showTranslation(errorKey);\r\n } catch (e) {\r\n console.error(\"An error occurred while handling the HTTP error:\", e);\r\n SweetAlertFactory.showTranslation(\"httpError.unexpected\");\r\n }\r\n };\r\n\r\n // #endregion\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.company-registry')\r\n .controller('CompanyRegistryArgentinaCtrl', CompanyRegistryArgentinaCtrl);\r\n\r\n /** @ngInject */\r\n function CompanyRegistryArgentinaCtrl (\r\n $rootScope,\r\n $scope,\r\n $anchorScroll,\r\n $helper,\r\n $location,\r\n $mdDialog,\r\n $translate,\r\n ApplicationResponseAPI,\r\n CompanyAPI,\r\n EnderecoAPI,\r\n filterFilter,\r\n SweetAlertFactory,\r\n $shareholderService, //INTRA-3114\r\n $companyService,\r\n $controller\r\n ) {\r\n \r\n $controller('BaseCompanyRegistryCtrl', {$scope: $scope});\r\n\r\n var codErp = 7;\r\n var countryId = \"STAR_2OMUI_29U0SUAZC\";\r\n\r\n var toastrMessages = {};\r\n function getToastrTranslations() {\r\n toastrMessages = $companyService.getToastrMessages();\r\n }\r\n getToastrTranslations();\r\n $scope.$on('$localeChangeSuccess', getToastrTranslations);\r\n\r\n /**\r\n * ValidaĆ§Ć£o do componente de EndereƧamento;\r\n * @author Raviel Chausse Silveira\r\n * @date 13/11/2017\r\n **/\r\n var resetCountry = function (callback) {\r\n $scope.company.country = null;\r\n typeof callback === 'function' ? callback() : resetState();\r\n };\r\n var resetState = function (callback) {\r\n $scope.company.state = null;\r\n $scope.states = [];\r\n typeof callback === 'function' ? callback() : resetCity();\r\n };\r\n var resetCity = function (callback) {\r\n $scope.company.city = null;\r\n $scope.cities = [];\r\n typeof callback === 'function' ? callback() : null;\r\n };\r\n /** Fim da ValidaĆ§Ć£o **/\r\n\r\n var fillWithPreRegistrationData = function () {\r\n fillAllContact();\r\n if ($scope.isUpdate) {\r\n var intranet = $scope.company.intranetType\r\n delete $rootScope.company.intranetType;\r\n $.extend(true, $scope.company, $rootScope.company);\r\n\r\n if (intranet > 0) $scope.company.intranetType = String(intranet);\r\n }\r\n else $.extend(true, $scope.company, $rootScope.company);\r\n fillWestconVendor();\r\n fillState();\r\n };\r\n\r\n var fillAllContact = function () {\r\n var keys = [\"contactMain\", \"contactNFe\", \"contactPurchases\", \"contactAccounts\"];\r\n if ($scope.company.contatos && $scope.company.contatos.length > 0) {\r\n for (var i = 0; i < $scope.company.contatos.length; i++) {\r\n if (_.isUndefined($scope.company[keys[i]])) $scope.company[keys[i]] = {};\r\n _.extend($scope.company[keys[i]] = $scope.company.contatos[i]);\r\n }\r\n }\r\n $scope.company.userName = $rootScope.company.contactMain.nomeContato;\r\n $scope.company.userEmail = $rootScope.company.contactMain.email;\r\n $scope.company.contactMain.telefone = $scope.company.telefone;\r\n };\r\n\r\n var fillWestconVendor = function () {\r\n if (!_.isEmpty($scope.company.ukeyVendedor)) {\r\n var params = { westconCode: $scope.company.ukeyVendedor.trim() };\r\n var vendor = _.find($scope.westconVendors, params);\r\n if (!_.isEmpty(vendor)) {\r\n $scope.company.westconVendor = vendor;\r\n $scope.company.vendedor = vendor.name;\r\n } else if (!_.isEmpty($scope.company.vendedor)) {\r\n $scope.company.westconVendor = filterFilter($scope.westconVendors, { name: $scope.company.vendedor.trim().toUpperCase() })[0];\r\n }\r\n } else if (!_.isEmpty($scope.company.vendedor)) {\r\n $scope.company.westconVendor = filterFilter($scope.westconVendors, { name: $scope.company.vendedor.trim().toUpperCase() })[0];\r\n }\r\n };\r\n\r\n var fillState = function () {\r\n if (!_.isEmpty($scope.company.ukeyEstado)) {\r\n var params = { westconCode: $scope.company.ukeyEstado.trim() };\r\n var state = _.find($scope.states, params);\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n $scope.company.estado = state.name;\r\n searchCity(state, fillCity);\r\n } else if (!_.isEmpty($scope.company.estado)) {\r\n params = { name: $scope.company.estado.trim() };\r\n state = _.find($scope.states, params);\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n searchCity(state, fillCity);\r\n }\r\n }\r\n }\r\n };\r\n\r\n var fillCity = function () {\r\n if (!_.isEmpty($scope.company.ukeyCidade)) {\r\n var params = { westconCode: $scope.company.ukeyCidade.trim() };\r\n var city = _.find($scope.cities, params);\r\n if (!_.isEmpty(city)) {\r\n $scope.company.city = city;\r\n $scope.company.cidade = city.name;\r\n } else if (!_.isEmpty($scope.company.cidade)) {\r\n $scope.company.city = _.find($scope.cities, { name: $scope.company.cidade.trim() });\r\n }\r\n }\r\n };\r\n\r\n var searchState = function (country, callback) {\r\n if (!_.isEmpty(country)) {\r\n var countryId = country.westconCode;\r\n EnderecoAPI.listStates({ codErp: codErp, countryId: countryId }, function (data) {\r\n $scope.states = data;\r\n typeof callback === 'function' ? callback() : null;\r\n }, $helper.throwException);\r\n } else {\r\n $scope.company.state = null;\r\n $scope.states = [];\r\n }\r\n };\r\n\r\n var searchCity = function (state, callback) {\r\n if (!_.isEmpty(state)) {\r\n var stateId = state.westconCode;\r\n EnderecoAPI.listCities({ codErp: codErp, stateId: stateId }, function (data) {\r\n $scope.cities = data;\r\n typeof callback === 'function' ? callback() : null;\r\n }, $helper.throwException);\r\n } else {\r\n $scope.company.city = null;\r\n $scope.cities = [];\r\n }\r\n };\r\n\r\n var fillDiaNFe = function () {\r\n if ($scope.company.diaLimiteEmissaoNfe > 0) {\r\n $scope.company.prazoNfe = '1';\r\n } else {\r\n $scope.company.prazoNfe = '0';\r\n }\r\n };\r\n\r\n var mapCompany = function (company) {\r\n $rootScope.loading = false;\r\n $scope.isUpdate = true;\r\n _.extend($scope.company, company);\r\n fillWithPreRegistrationData();\r\n fillDiaNFe();\r\n }\r\n\r\n var afterListCuit = function (data) {\r\n $rootScope.loading = false;\r\n if (data && data.length > 0) {\r\n $scope.possibleCompanies = data;\r\n $('#listaEmpresaModal').modal('show');\r\n }\r\n };\r\n\r\n $scope.codERP = codErp;\r\n $scope.cities = [];\r\n $scope.conditionsPayments = [];\r\n $scope.financialClassifications = [];\r\n $scope.formData = {};\r\n $scope.isUpdate = false;\r\n $scope.mainContactOnly = false;\r\n $scope.oldCompany = {};\r\n $scope.files = [];\r\n $scope.otherFileList = [];\r\n $scope.possibleCompanies = [];\r\n $scope.states = [];\r\n $scope.timeoutID = null;\r\n $scope.typeClients = [];\r\n $scope.westconVendors = [];\r\n $scope.shareholdersQty = 0; //INTRA-3114\r\n $scope.valueShareholdersQty = []; //INTRA-3114\r\n $scope.Justificativa = \"\";\r\n\r\n if (!_.isEmpty($rootScope.company)) {\r\n $scope.company = $rootScope.company;\r\n $rootScope.loading = true;\r\n CompanyAPI.listByCuit({ cuit: $scope.company.cnpj }, afterListCuit, $helper.throwException);\r\n $scope.formData.userName = $rootScope.company.contactMain.nomeContato;\r\n $scope.formData.userEmail = $rootScope.company.contactMain.email;\r\n }\r\n\r\n ApplicationResponseAPI.GetTipoCliente({ codErp: codErp }, function (data) { $scope.typeClients = data }, $helper.throwException);\r\n EnderecoAPI.listStates({ codErp: codErp, countryId: countryId }, function (data) { $scope.states = data }, $helper.throwException);\r\n ApplicationResponseAPI.GetClassificacao({ codErp: codErp }, function (data) { $scope.financialClassifications = data }, $helper.throwException);\r\n ApplicationResponseAPI.GetCondicaoPagamento({ codErp: codErp }, function (data) { $scope.conditionsPayments = data }, $helper.throwException);\r\n CompanyAPI.query({ codErp: codErp }, function (data) { $scope.westconVendors = data.sort(function (a,b) { return a.name.localeCompare(b.name) }) }, $helper.throwException);\r\n\r\n $scope.selectVendor = function (vendor) {\r\n $companyService.selectVendor($scope.company, vendor)\r\n }\r\n\r\n $scope.selectCountry = function (country) {\r\n if (!_.isEmpty(country)) {\r\n $scope.company.country = country;\r\n $scope.company.ukeyPais = country.westconCode;\r\n $scope.company.pais = country.name;\r\n searchState(country);\r\n } else {\r\n resetState();\r\n }\r\n }\r\n\r\n $scope.selectState = function (state) {\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n $scope.company.ukeyEstado = state.westconCode;\r\n $scope.company.estado = state.name;\r\n searchCity(state);\r\n } else {\r\n resetCity();\r\n }\r\n }\r\n\r\n $scope.selectCity = function (city) {\r\n $companyService.selectCity($scope.company, city);\r\n }\r\n\r\n $scope.selectTypeClients = function (cliente) { $scope.company.TipoDeClienteFornecedor = cliente };\r\n $scope.selectConditionPayment = function (conditionPayment) { $scope.company.CondicaoPagamento = conditionPayment };\r\n $scope.queryWestconVendors = function (query) { return filterFilter($scope.westconVendors, { name: query }) };\r\n $scope.queryState = function (query) { return filterFilter($scope.states, { name: query }) };\r\n $scope.queryCity = function (query) { return filterFilter($scope.cities, { name: query }) };\r\n $scope.queryTypeClients = function (query) { return filterFilter($scope.typeClients, { name: query }) };\r\n $scope.queryConditionsPayments = function (query) { return filterFilter($scope.conditionsPayments, { name: query }) };\r\n\r\n $scope.sendCompany = function (form) {\r\n if (fnIsFormValid(form)) {\r\n $rootScope.loading = true;\r\n\r\n var valid = true;\r\n if (($scope.company.Justificativa == \"\" || $scope.company.Justificativa == null) && $scope.valueShareholdersQty.length == 0) {\r\n SweetAlertFactory.showTranslation('RegisterCompany.Justification');\r\n $rootScope.loading = false;\r\n return;\r\n }\r\n else if(($scope.company.Justificativa != \"\" || $scope.company.Justificativa != null) && $scope.valueShareholdersQty.length == 0){\r\n $scope.valueShareholdersQty.push({\r\n Percentagem: 10,\r\n Justificativa: $scope.company.Justificativa\r\n });\r\n valid = true;\r\n }\r\n\r\n if(!$scope.checkFilesTotalSize($scope.files.concat($scope.otherFileList))){\r\n SweetAlertFactory.showTranslation('FileSizeLimitExceeded');\r\n $rootScope.loading = false;\r\n return;\r\n }\r\n\r\n if(valid) {\r\n addContacts();\r\n addLocale();\r\n \r\n $scope.company.ukeyPais = \"STAR_2OMUI_29U0SUAZC\";\r\n $scope.company.pais = \"Argentina\";\r\n $scope.company.contatoPrincipal_Nome = $scope.company.contactMain.nomeContato;\r\n \r\n $scope.formData.Reseller = $scope.company.empresaResponsavel;\r\n $scope.formData.Company = $scope.company;\r\n $scope.formData.Company.codErp = codErp;\r\n $scope.company.Acionista = $scope.valueShareholdersQty; //INTRA-3114\r\n \r\n //INTRA-2831\r\n if ($scope.condicaoPagamentoArquivo == '1') $scope.company.CondicaoPagamento = { name: \"Prepaid\" };\r\n else if ($scope.condicaoPagamentoArquivo == '2') $scope.company.CondicaoPagamento = { name: \"Credit limit\" };\r\n \r\n // NOW UPLOAD THE FILES AND THE FORM\r\n var data = new FormData();\r\n var xhr = new XMLHttpRequest();\r\n \r\n // Upload of File\r\n $scope.files.forEach(function (f) { data.append(f.type, f.file) });\r\n \r\n // Upload of Other File;\r\n if ($scope.otherFileList.length > 0) {\r\n $scope.otherFileList.forEach(function (otherFile) { data.append('other-file_' + otherFile.Name, otherFile.Content) });\r\n }\r\n \r\n // Upload Form Data;\r\n data.append('company', JSON.stringify($scope.formData));\r\n \r\n //INTRA-3114\r\n if (!$shareholderService.ValidatePercentage($scope)){\r\n SweetAlertFactory.showTranslation('RegisterCompany.ValidationCompanyShareholderSum');\r\n $rootScope.loading = false;\r\n }\r\n \r\n // Send Form Data;\r\n xhr.addEventListener(\"load\", transferComplete, false);\r\n xhr.addEventListener(\"error\", $scope.handleHttpError, false);\r\n\r\n if ($scope.isUpdate) {\r\n xhr.open(\"POST\", baseApi + 'company/update');\r\n } else {\r\n xhr.open(\"POST\", baseApi + 'company/register');\r\n }\r\n }\r\n\r\n xhr.send(data);\r\n }\r\n };\r\n\r\n function fnIsFormValid (form) {\r\n var valid = false;\r\n var interestMissing = false;\r\n\r\n if ($scope.company.linhaInteresse == null || $scope.company.linhaInteresse.length == 0) {\r\n interestMissing = true; \r\n }\r\n \r\n if (form.$invalid || interestMissing) {\r\n $anchorScroll();\r\n var errorTypes = Object.keys(form.$error);\r\n\r\n if (errorTypes.includes('required') || interestMissing) {\r\n var reqFields = {};\r\n var translationKeys = [];\r\n\r\n if (form.$error.required)\r\n form.$error.required.forEach(function(r){reqFields[r.$name] = r.$$attr.key;});\r\n\r\n if (interestMissing) \r\n reqFields['LinhaInteresse'] = 'LinhaInteresse';\r\n \r\n translationKeys = Object.values(reqFields);\r\n\r\n translationKeys.unshift('InvalidForm', 'FillRequiredFields', 'LF');\r\n SweetAlertFactory.showTranslationLote(translationKeys);\r\n\r\n\r\n } else if (errorTypes.includes('email') ) {\r\n SweetAlertFactory.showTranslation('InvalidEmail');\r\n\r\n } else {\r\n SweetAlertFactory.showTranslation('InvalidForm');\r\n\r\n }\r\n\r\n } else if ($scope.condicaoPagamentoArquivo == '2') {\r\n var translationKeys = [];\r\n\r\n if ($scope.SingleDocument !== true) { translationKeys.push('SingleDocumentArgentina') }\r\n if ($scope.ContratoSocial !== true) { translationKeys.push('ContratoSocial') }\r\n if ($scope.AtaAutoridades !== true) { translationKeys.push('AtaAutoridades') }\r\n if ($scope.BankStatements !== true) { translationKeys.push('BankStatementsArgentina') }\r\n if ($scope.InscricaoImpostos !== true) { translationKeys.push('InscricaoImpostos') }\r\n\r\n if (translationKeys.length > 0) {\r\n $anchorScroll();\r\n translationKeys.unshift('InvalidForm', 'AttachRequiredFiles', 'LF');\r\n SweetAlertFactory.showTranslationLote(translationKeys);\r\n\r\n } else {\r\n valid = true;\r\n }\r\n }\r\n else {\r\n valid = true;\r\n }\r\n\r\n\r\n return valid;\r\n }\r\n\r\n function transferComplete (evt) {\r\n $rootScope.loading = false;\r\n if (evt.target.status == 200) {\r\n if (evt.target.response) {\r\n var response = JSON.parse(evt.target.response);\r\n if (response.sucesso) {\r\n $scope.showModalSucesso();\r\n } else {\r\n $scope.showModalError();\r\n }\r\n } else {\r\n $scope.showModalSucesso();\r\n }\r\n } else {\r\n $scope.handleHttpError(evt);\r\n }\r\n }\r\n\r\n function addContactNFe(key) {\r\n if (!key) key = 'contactNFe';\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: false,\r\n receiveNFe: true,\r\n receiveNFeXML: true,\r\n tipo: 'nfe'\r\n });\r\n }\r\n\r\n function addContactPurchases(key) {\r\n if (!key) key = 'contactPurchases';\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: false,\r\n receiveNFeXML: false,\r\n tipo: 'compras'\r\n });\r\n }\r\n\r\n function addContactAccounts(key) {\r\n if (!key) key = 'contactAccounts';\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: false,\r\n receiveNFeXML: false,\r\n tipo: 'contas'\r\n });\r\n }\r\n\r\n function addContacts() {\r\n\r\n $scope.company.userName = $scope.company.contactMain.nomeContato;\r\n $scope.company.userEmail = $scope.company.contactMain.email;\r\n\r\n $scope.company.contatos = [{\r\n nomeContato: $scope.company.contactMain.nomeContato,\r\n telefone: $scope.company.contactMain.telefone,\r\n email: $scope.company.contactMain.email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: true,\r\n receiveNFeXML: true,\r\n tipo: 'principal'\r\n }];\r\n\r\n if ($scope.mainContactOnly) {\r\n delete $scope.company.contactNFe;\r\n delete $scope.company.contactPurchases;\r\n delete $scope.company.contactAccounts;\r\n \r\n addContactNFe('contactMain');\r\n addContactPurchases('contactMain');\r\n addContactAccounts('contactMain');\r\n } else {\r\n addContactNFe();\r\n addContactPurchases();\r\n addContactAccounts();\r\n }\r\n\r\n }\r\n\r\n function addLocale() {\r\n $scope.company.locale = $translate.use();\r\n }\r\n\r\n function getDays() {\r\n var days = [];\r\n for (var i = 1; i < 32; i++) {\r\n days.push(i);\r\n }\r\n return days;\r\n }\r\n\r\n $scope.searchCompanyData = function () {\r\n $('#listaEmpresaModal').modal('hide');\r\n $rootScope.loading = true;\r\n CompanyAPI.getCompanyById({ id: $scope.oldCompany.id, codErp: codErp }, mapCompany, $helper.throwException);\r\n }\r\n\r\n $scope.validarCuit = function () {\r\n if ($scope.company.cnpj && $scope.company.cnpj.length != 11) {\r\n $('#cuit').addClass('erro-validacao');\r\n $scope.company.cnpj = '';\r\n $rootScope.loading = false;\r\n SweetAlertFactory.showTranslation('RegisterCompany.CuitError');\r\n }\r\n\r\n var acumulado = 0;\r\n var digitos = $scope.company.cnpj.split(\"\");\r\n var digito = digitos.pop();\r\n\r\n for(var i = 0; i < digitos.length; i++) {\r\n acumulado += digitos[9 - i] * (2 + (i % 6));\r\n }\r\n\r\n var verif = 11 - (acumulado % 11);\r\n if(verif == 11) {\r\n verif = 0;\r\n } else if(verif == 10) {\r\n verif = 9;\r\n }\r\n\r\n if (digito == verif) {\r\n\r\n $('#cuit').removeClass('erro-validacao');\r\n\r\n } else {\r\n\r\n $('#cuit').addClass('erro-validacao');\r\n $scope.company.cnpj = '';\r\n\r\n $rootScope.loading = false;\r\n SweetAlertFactory.showTranslation('RegisterCompany.CuitError');\r\n }\r\n };\r\n\r\n if (_.isEmpty($('#cuit').val())) {\r\n document.location.href = $rootScope.sanitizeUrl(document.location.origin) + '/#!/company-registry/new';\r\n } else {\r\n $scope.days = getDays();\r\n }\r\n \r\n /* INNO-1359 Inicio */\r\n $scope.showModalSucesso = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: 'TD SYNNEX',\r\n textContent: toastrMessages.success,\r\n ok: 'OK'\r\n });\r\n $mdDialog\r\n .show( alert )\r\n .finally(function () {\r\n $location.path(\"/\");\r\n });\r\n };\r\n \r\n $scope.showModalError = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: 'TD SYNNEX',\r\n textContent: toastrMessages.errorCompanyRegister,\r\n ok: 'OK'\r\n });\r\n $mdDialog\r\n .show( alert )\r\n .finally(function () {\r\n alert = undefined;\r\n });\r\n };\r\n\r\n $scope.showModalFileSize = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: 'TD SYNNEX',\r\n textContent: toastrMessages.errorFileSize,\r\n ok: 'OK'\r\n });\r\n $mdDialog\r\n .show( alert )\r\n .finally(function () {\r\n alert = undefined;\r\n });\r\n };\r\n \r\n //INTRA-3114\r\n $scope.UpdateAcionista = function (vm) {\r\n $shareholderService.Update ($scope, vm)\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.company-registry')\r\n .controller('CompanyRegistryBrasilCtrl', CompanyRegistryBrasilCtrl);\r\n\r\n /** @ngInject */\r\n function CompanyRegistryBrasilCtrl (\r\n $rootScope,\r\n $scope,\r\n $anchorScroll,\r\n $helper,\r\n $location,\r\n $translate,\r\n CompanyAPI,\r\n EnderecoAPI,\r\n filterFilter,\r\n SweetAlertFactory,\r\n $companyService\r\n ) {\r\n\r\n var codErp = 1;\r\n var countryId = \"starsoft_B R A S I L\";\r\n\r\n $scope.codERP = codErp;\r\n $scope.cities = [];\r\n $scope.files = [];\r\n $scope.formData = {};\r\n $scope.isUpdate = false;\r\n $scope.isDeclared = false;\r\n $scope.mainContactOnly = false;\r\n $scope.confirmMainContactOnly = false;\r\n $scope.otherFileList = [];\r\n $scope.states = [];\r\n $scope.westconVendors = [];\r\n $scope.isSuframa = false; \r\n $scope.isCnpjRegisteredInvalid = null;\r\n $scope.lastCnpjSearch = '';\r\n\r\n $scope.interestList = [\r\n 'Westcon',\r\n 'Comstor',\r\n 'Microsoft'\r\n ];\r\n $scope.interests = [];\r\n\r\n $scope.toggleCheck = function (interest) {\r\n $scope.interests = [interest];\r\n };\r\n\r\n var openAvisoContato = function () {\r\n $('#modalAvisoContato').modal('show');\r\n };\r\n\r\n $scope.getClsCnpjRegistered = function (evt, cnpjRegistered) {\r\n\r\n if ($scope.isCnpjRegisteredInvalid === true || (cnpjRegistered.$error.required && cnpjRegistered.$dirty === true)) {\r\n\r\n return 'erro-validacao';\r\n\r\n } else {\r\n\r\n if ($scope.isCnpjRegisteredInvalid === false) {\r\n\r\n return 'input-valid';\r\n }\r\n }\r\n };\r\n\r\n $scope.$watch('company.cnpjRegistered', angular.bind(null, fnWatchCnpj, $rootScope, $scope));\r\n\r\n $scope.$on('CompanyRegistry_ResetCnpj', function () {\r\n $scope.$apply(function () {\r\n $scope.hasCNPJ = false;\r\n $scope.isCnpjRegisteredInvalid = null;\r\n delete $scope.company.cnpjRegistered;\r\n });\r\n });\r\n\r\n function fnWatchCnpj (rootScope, scope, value) {\r\n\r\n var cnpj = (value || '');\r\n\r\n cnpj = cnpj.replace(/[\\./-]/g, '');\r\n\r\n if (cnpj.length == 14 && cnpj !== $scope.lastCnpjSearch) {\r\n\r\n $scope.lastCnpjSearch = cnpj;\r\n\r\n var params = { code: cnpj, codErp: $scope.codERP, searchAtSerasa: false };\r\n \r\n rootScope.loading = true;\r\n CompanyAPI.getCompany(params, function (company) {\r\n\r\n scope.isCnpjRegisteredInvalid = !company.cnpj;\r\n rootScope.loading = false;\r\n\r\n if ($scope.isCnpjRegisteredInvalid) {\r\n\r\n SweetAlertFactory.showTranslation('CNPJ.TryAgain');\r\n }\r\n\r\n }, $helper.throwException);\r\n }\r\n }\r\n\r\n $scope.onConfirmAvisoContato = function (evt) {\r\n $scope.onCloseAvisoContato(evt);\r\n $scope.confirmMainContactOnly = true;\r\n $scope.sendCompany($scope.frmCompany);\r\n };\r\n \r\n $scope.onCloseAvisoContato = function (evt) {\r\n $('#modalAvisoContato').modal('hide');\r\n };\r\n\r\n var resetCity = function (callback) {\r\n $scope.company.city = null;\r\n $scope.cities = [];\r\n typeof callback === 'function' ? callback() : null;\r\n };\r\n\r\n var fnFillWithPreRegistrationData = function () {\r\n fnFillAllContact();\r\n if ($scope.isUpdate) {\r\n var intranet = $scope.company.intranetType\r\n delete $rootScope.company.intranetType;\r\n $.extend(true, $scope.company, $rootScope.company);\r\n\r\n if (intranet > 0) $scope.company.intranetType = String(intranet);\r\n }\r\n fnFillWestconVendor();\r\n fnFillState();\r\n };\r\n\r\n var fnFillAllContact = function () {\r\n var keys = [\"contactMain\", \"contactNFe\", \"contactPurchases\", \"contactAccounts\"];\r\n if ($scope.company.contatos && $scope.company.contatos.length > 0) {\r\n for (var i = 0; i < $scope.company.contatos.length; i++) {\r\n if (_.isUndefined($scope.company[keys[i]])) $scope.company[keys[i]] = {};\r\n _.extend($scope.company[keys[i]] = $scope.company.contatos[i]);\r\n }\r\n }\r\n };\r\n\r\n var fnFillWestconVendor = function () {\r\n CompanyAPI.query({ codErp: codErp }, \r\n function (data) { \r\n \r\n /** INNO-1417 **/\r\n data ? data : [];\r\n data.unshift({\r\n 'code': null,\r\n 'name': 'Sou uma empresa nova ou esqueci meu vendedor',\r\n 'westconCode': null\r\n });\r\n\r\n $scope.westconVendors = data;\r\n\r\n if (!_.isEmpty($scope.company.ukeyVendedor)) {\r\n var params = { westconCode: $scope.company.ukeyVendedor.trim() };\r\n var vendor = _.find($scope.westconVendors, params);\r\n if (!_.isEmpty(vendor)) {\r\n $scope.company.westconVendor = vendor;\r\n $scope.company.vendedor = vendor.name;\r\n } else if (!_.isEmpty($scope.company.vendedor)) {\r\n $scope.company.westconVendor = filterFilter($scope.westconVendors, { name: $scope.company.vendedor.trim().toUpperCase() })[0];\r\n }\r\n } else if (!_.isEmpty($scope.company.vendedor)) {\r\n $scope.company.westconVendor = filterFilter($scope.westconVendors, { name: $scope.company.vendedor.trim().toUpperCase() })[0];\r\n }\r\n }, \r\n $helper.throwException\r\n );\r\n };\r\n\r\n var fnFillState = function () {\r\n if (!_.isEmpty($scope.company.ukeyEstado)) {\r\n var params = { westconCode: $scope.company.ukeyEstado.trim() };\r\n var state = _.find($scope.states, params);\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n $scope.company.estado = state.name;\r\n searchCity(state, fnFillCity);\r\n } else if (!_.isEmpty($scope.company.estado)) {\r\n params = { name: $scope.company.estado.trim() };\r\n state = _.find($scope.states, params);\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n searchCity(state, fnFillCity);\r\n // console.log(\"mudou a cidade\");\r\n $scope.isSuframa = true;\r\n }\r\n }\r\n }\r\n };\r\n\r\n var fnFillCity = function () {\r\n if (!_.isEmpty($scope.company.ukeyCidade)) {\r\n var params = { westconCode: $scope.company.ukeyCidade.trim() };\r\n var city = _.find($scope.cities, params);\r\n if (!_.isEmpty(city)) {\r\n $scope.company.city = city;\r\n $scope.company.cidade = city.name;\r\n } else if (!_.isEmpty($scope.company.cidade)) {\r\n $scope.company.city = _.find($scope.cities, { name: $scope.company.cidade.trim() });\r\n }\r\n }\r\n };\r\n\r\n var searchCity = function (state, callback) {\r\n if (!_.isEmpty(state)) {\r\n var stateId = state.westconCode;\r\n EnderecoAPI.listCities({ codErp: codErp, stateId: stateId }, function (data) {\r\n $scope.cities = data;\r\n typeof callback === 'function' ? callback() : null;\r\n }, $helper.throwException);\r\n } else {\r\n $scope.company.city = null;\r\n $scope.cities = [];\r\n }\r\n };\r\n\r\n var fnFillDiaNFe = function () {\r\n /// INNO-1755 - Raviel Chausse Silveira\r\n if ($scope.company.diaLimiteEmissaoNfe) {\r\n /// Ajustado em INNO-1780\r\n $scope.company.diaLimiteEmissaoNfe = ((31 - $scope.company.diaLimiteEmissaoNfe) + 4);\r\n } else {\r\n $scope.company.diaLimiteEmissaoNfe = 0;\r\n }\r\n\r\n if ($scope.company.diaLimiteEmissaoNfe > 0) {\r\n $scope.company.prazoNfe = '1';\r\n } else {\r\n $scope.company.prazoNfe = '0';\r\n }\r\n };\r\n\r\n var fnFillInscricaoMunicipal = function () {\r\n if ($scope.company.inscricaoMunicipal > 0) {\r\n $scope.company.possuiInscricaoMunicipal = '1';\r\n $scope.company.inscricaoMunicipal = parseInt($scope.company.inscricaoMunicipal);\r\n } else {\r\n $scope.company.possuiInscricaoMunicipal = '0';\r\n }\r\n };\r\n\r\n var fnFillComissao = function () {\r\n if ($scope.company.recebeComissao > 0) {\r\n $scope.company.recebeComissao = 'true';\r\n } else {\r\n $scope.company.recebeComissao = 'false';\r\n }\r\n };\r\n\r\n var mapCompany = function (company) {\r\n $rootScope.loading = false;\r\n $scope.isUpdate = $rootScope.isUpdate;\r\n _.extend($scope.company, company);\r\n\r\n fnFillWithPreRegistrationData();\r\n\r\n /// INNO-1891\r\n fnFillInscricaoEstatual();\r\n \r\n if ($scope.isUpdate) {\r\n fnFillDiaNFe();\r\n fnFillInscricaoMunicipal();\r\n fnFillComissao();\r\n }\r\n\r\n // console.log({ update: $scope.isUpdate });\r\n };\r\n\r\n $scope.selectVendor = function (vendor) {\r\n $companyService.selectVendor($scope.company, vendor)\r\n }\r\n\r\n $scope.selectState = function (state) {\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n $scope.company.ukeyEstado = state.westconCode;\r\n $scope.company.estado = state.name;\r\n searchCity(state);\r\n $scope.isSuframa = isSuframa(state.name);\r\n } else {\r\n resetCity();\r\n }\r\n }\r\n\r\n function isSuframa (name) {\r\n\r\n switch (name) {\r\n case 'AMAZONAS':\r\n case 'ACRE':\r\n case 'RONDONIA':\r\n case 'RORAIMA':\r\n case 'AMAPA':\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n $scope.selectCity = function (city) {\r\n $companyService.selectCity($scope.company, city);\r\n }\r\n\r\n $scope.queryWestconVendors = function (query) { return filterFilter($scope.westconVendors, { name: query }) };\r\n $scope.queryState = function (query) { return filterFilter($scope.states, { name: query }) };\r\n $scope.queryCity = function (query) { return filterFilter($scope.cities, { name: query }) };\r\n\r\n $scope.removeOtherFile = function (key) {\r\n $scope.otherFileList = $scope.otherFileList.filter(function (value) { return value.key != key });\r\n };\r\n\r\n $scope.pushOtherFiles = function (elementHTML) {\r\n if ($scope.otherFiles) {\r\n $scope.$apply(function () {\r\n for (var i = 0; i < elementHTML.files.length; i++) {\r\n $scope.otherFileList.push({\r\n Name: $scope.otherFiles,\r\n Content: elementHTML.files.item(i) ,\r\n key: new Date().getTime()\r\n });\r\n }\r\n $scope.otherFiles = \"\";\r\n });\r\n } else {\r\n\r\n SweetAlertFactory.showTranslation('RegisterCompany.FileError');\r\n\r\n }\r\n angular.element(elementHTML).val(null);\r\n };\r\n\r\n $scope.getFileDetails = function (e, type) {\r\n if(e.files.length){\r\n $scope[type] = true;\r\n }\r\n else {\r\n $scope[type] = false;\r\n }\r\n\r\n $scope.$apply(function () {\r\n // Remove existing files of the same type\r\n $scope.files = $scope.files.filter(function(file) {\r\n return file.type !== type;\r\n });\r\n\r\n // Add new files\r\n for (var i = 0; i < e.files.length; i++) {\r\n $scope.files.push({ type: type, file: e.files[i] });\r\n }\r\n });\r\n };\r\n\r\n $scope.sendCompany = function (form) {\r\n if (fnIsFormValid(form)) {\r\n $rootScope.loading = true;\r\n\r\n formatEnrollment();\r\n addContacts();\r\n\r\n if ($scope.company.prazoNfe == 0) $scope.company.diaLimiteEmissaoNfe = 0\r\n\r\n $scope.company.codERP = codErp;\r\n $scope.company.locale = $translate.use();\r\n $scope.company.ukeyPais = \"starsoft_B R A S I L\";\r\n $scope.company.pais = \"BR\";\r\n $scope.company.contatoPrincipal_Nome = $scope.company.contactMain.nomeContato;\r\n\r\n /// INNO-1968\r\n $scope.company.linhaInteresse = $scope.interests;\r\n\r\n $scope.formData.Company = $scope.company;\r\n $scope.formData.Company.isSerasa = $rootScope.isSerasa;\r\n\r\n // NOW UPLOAD THE FILES AND THE FORM\r\n var data = new FormData();\r\n var xhr = new XMLHttpRequest();\r\n\r\n // Upload of File\r\n $scope.files.forEach(function (f) { data.append(f.type, f.file) });\r\n\r\n // Upload of Other File;\r\n if ($scope.otherFileList.length > 0) {\r\n $scope.otherFileList.forEach(function (otherFile) { data.append('other-file_' + otherFile.Name, otherFile.Content) });\r\n }\r\n\r\n // Upload Form Data;\r\n data.append('company', JSON.stringify($scope.formData));\r\n\r\n // Send Form Data;\r\n xhr.addEventListener(\"load\", transferComplete, false);\r\n xhr.addEventListener(\"error\", function (error) {\r\n $scope.$emit(\"onInternalServerError\", error);\r\n }, false);\r\n\r\n if ($scope.isUpdate) {\r\n xhr.open(\"POST\", baseApi + 'company/update');\r\n } else {\r\n xhr.open(\"POST\", baseApi + 'company/register');\r\n }\r\n\r\n xhr.send(data);\r\n }\r\n };\r\n\r\n // INNO-1870\r\n $scope.$on(\"onInternalServerError\", function (evt, data) {\r\n $scope.$apply(function () {\r\n console.error('onInternalServerError');\r\n $rootScope.loading = false;\r\n $helper.throwException(data);\r\n });\r\n });\r\n\r\n var transferComplete = function (evt) {\r\n\r\n $rootScope.loading = false;\r\n\r\n if (evt.target.status == 200 && evt.target.response) {\r\n\r\n var response = JSON.parse(evt.target.response);\r\n\r\n if (response.sucesso === false) {\r\n\r\n $scope.showModalError();\r\n\r\n } else {\r\n\r\n SweetAlertFactory.showTranslationWithFinally(\r\n 'RegisterCompany.Success', \r\n function () { \r\n window.location = '/';\r\n }\r\n );\r\n }\r\n } else {\r\n\r\n $helper.throwException(evt);\r\n\r\n }\r\n };\r\n\r\n var addContacts = function () {\r\n\r\n $scope.company.userName = $scope.company.contactMain.nomeContato;\r\n $scope.company.userEmail = $scope.company.contactMain.email;\r\n\r\n $scope.company.contatos = [{\r\n nomeContato: $scope.company.contactMain.nomeContato,\r\n telefone: $scope.company.contactMain.telefone,\r\n email: $scope.company.contactMain.email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: true,\r\n receiveNFeXML: true,\r\n tipo: 'principal'\r\n }];\r\n\r\n if ($scope.mainContactOnly) {\r\n addContactNFe('contactMain');\r\n addContactPurchases('contactMain');\r\n addContactAccounts('contactMain');\r\n } else {\r\n addContactNFe();\r\n addContactPurchases();\r\n addContactAccounts();\r\n }\r\n\r\n delete $scope.company.contactNFe;\r\n delete $scope.company.contactPurchases;\r\n delete $scope.company.contactAccounts;\r\n };\r\n\r\n var addContactNFe = function (key) {\r\n if (!key) key = 'contactNFe';\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: false,\r\n receiveNFe: true,\r\n receiveNFeXML: true,\r\n tipo: 'nfe'\r\n });\r\n };\r\n\r\n var addContactPurchases = function (key) {\r\n if (!key) key = 'contactPurchases';\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: false,\r\n receiveNFeXML: false,\r\n tipo: 'compras'\r\n });\r\n };\r\n\r\n var addContactAccounts = function (key) {\r\n if (!key) key = 'contactAccounts';\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: false,\r\n receiveNFeXML: false,\r\n tipo: 'contas'\r\n });\r\n };\r\n\r\n var formatEnrollment = function () {\r\n if ($scope.company.possuiInscricao == 0) {\r\n $scope.company.inscricaoEstadual = null;\r\n }\r\n if ($scope.company.possuiInscricaoMunicipal == 0) {\r\n $scope.company.inscricaoMunicipal = null;\r\n }\r\n };\r\n\r\n /// INNO-1755 - Raviel Chausse Silveira\r\n var getDays = function (callback) {\r\n $scope.days = [];\r\n for (var i = 31; i > 14; i--) {\r\n $scope.days.push(i);\r\n }\r\n if (typeof callback === 'function') {\r\n callback();\r\n }\r\n };\r\n\r\n function fnIsFormValid (form) {\r\n var valid = false;\r\n var interestMissing = false;\r\n\r\n if ($scope.interests.length === 0) {\r\n interestMissing = true; \r\n } \r\n\r\n if (form.$invalid || interestMissing) {\r\n $anchorScroll();\r\n var errorTypes = Object.keys(form.$error);\r\n\r\n if (errorTypes.includes('required') || interestMissing) {\r\n var reqFields = {};\r\n var translationKeys = [];\r\n\r\n if (form.$error.required) form.$error.required.forEach(function(r){reqFields[r.$name] = r.$$attr.key;});\r\n translationKeys = Object.values(reqFields);\r\n if (interestMissing) translationKeys.unshift('LinhaInteresse');\r\n\r\n translationKeys.unshift('InvalidForm', 'FillRequiredFields', 'LF');\r\n SweetAlertFactory.showTranslationLote(translationKeys);\r\n\r\n\r\n } else if (errorTypes.includes('email') ) {\r\n SweetAlertFactory.showTranslation('InvalidEmail');\r\n\r\n } else {\r\n SweetAlertFactory.showTranslation('InvalidForm');\r\n\r\n }\r\n\r\n } else if ($scope.company.inscricaoMunicipal && $scope.InscricaoMunicipal_PDF !== true) {\r\n $anchorScroll();\r\n SweetAlertFactory.showTranslationLote(['InvalidForm', 'AttachRequiredFiles', 'LF', 'InscricaoMunicipalPDF']);\r\n\r\n } else if ($scope.hasCNPJ && $scope.isCnpjRegisteredInvalid) {\r\n $anchorScroll();\r\n SweetAlertFactory.showTranslation('CNPJ.TryAgain');\r\n\r\n } else if ($scope.mainContactOnly && !$scope.confirmMainContactOnly) {\r\n openAvisoContato();\r\n\r\n } else {\r\n\r\n if (!$scope.hasCNPJ) delete $scope.company.cnpjRegistered;\r\n valid = true;\r\n }\r\n\r\n return valid;\r\n }\r\n\r\n /// INNO-1891 - Campos inscriĆ§Ć£o estadual e Contribuinte ICMS\r\n function fnFillInscricaoEstatual () {\r\n if ($scope.company.isContribuinte !== undefined && $scope.company.isContribuinte !== null) {\r\n $scope.company.contribuinte = $scope.company.isContribuinte ? \"1\" : \"0\";\r\n }\r\n if ($scope.company.isInscricao !== undefined && $scope.company.isInscricao !== null) {\r\n $scope.company.possuiInscricao = $scope.company.isInscricao ? \"1\" : \"0\";\r\n }\r\n };\r\n\r\n\r\n (function fnInit () {\r\n if (_.isEmpty($rootScope.company) || _.isEmpty($rootScope.company.cnpj)) {\r\n $location.path(\"company-registry/new\");\r\n \r\n } else {\r\n $rootScope.loading = true;\r\n \r\n getDays(function () { \r\n EnderecoAPI.listStates(\r\n { \r\n countryId: countryId, \r\n codErp: codErp \r\n }, \r\n function (data) { \r\n $scope.states = data \r\n setTimeout(mapCompany, 1000, $rootScope.company);\r\n }, \r\n $helper.throwException\r\n );\r\n });\r\n }\r\n })();\r\n }\r\n})();\r\n\n(function () {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"my.pages.company-registry\")\r\n .controller(\"CompanyRegistryCalaCtrl\", CompanyRegistryCalaCtrl);\r\n\r\n /** @ngInject */\r\n function CompanyRegistryCalaCtrl(\r\n $rootScope,\r\n $scope,\r\n $anchorScroll,\r\n $helper,\r\n $location,\r\n $mdDialog,\r\n $translate,\r\n ApplicationResponseAPI,\r\n CompanyAPI,\r\n EnderecoAPI,\r\n CisAPI,\r\n filterFilter,\r\n SweetAlertFactory,\r\n $companyService,\r\n $shareholderService,\r\n $controller\r\n ) {\r\n $controller(\"BaseCompanyRegistryCtrl\", { $scope: $scope });\r\n\r\n $scope.NomeFantasiaTranslateKey = \"NomeFantasiaLatam\";\r\n $scope.EstadoTranslateKey = \"EstadoCala\";\r\n $scope.CidadeTranslateKey = \"CidadeCala\";\r\n\r\n var codErp = 2;\r\n\r\n $scope.codERP = codErp;\r\n $scope.cities = [];\r\n $scope.company = {};\r\n $scope.countries = [];\r\n $scope.files = [];\r\n $scope.commercialReferencesFiles = [];\r\n $scope.financialClassifications = [];\r\n $scope.isUpdate = false;\r\n $scope.mainContactOnly = false;\r\n $scope.otherFileList = [];\r\n $scope.states = [];\r\n $scope.timeoutID = null;\r\n $scope.typeClients = [];\r\n $scope.westconVendors = [];\r\n $scope.shareholdersQty = 0;\r\n $scope.valueShareholdersQty = [];\r\n $scope.Justificativa = \"\";\r\n\r\n var toastrMessages = {};\r\n function getToastrTranslations() {\r\n toastrMessages = $companyService.getToastrMessages();\r\n }\r\n getToastrTranslations();\r\n $scope.$on(\"$localeChangeSuccess\", getToastrTranslations);\r\n\r\n $scope.downloadNonResident = function () {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open(\"GET\", baseApi + \"Download/NonResident\", true);\r\n xhr.responseType = \"blob\";\r\n\r\n xhr.onload = function () {\r\n if (xhr.status === 200) {\r\n var blob = new Blob([xhr.response], {\r\n type: \"application/pdf\",\r\n });\r\n var link = document.createElement(\"a\");\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = \"TDSYNNEXLAC_NonResident.pdf\";\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n } else {\r\n console.error(\"Erro ao fazer o download: \" + xhr.status);\r\n }\r\n };\r\n\r\n xhr.onerror = function () {\r\n console.error(\"Erro na requisiĆ§Ć£o.\");\r\n };\r\n\r\n xhr.send();\r\n };\r\n\r\n $scope.varCheckLineCreditCala = false;\r\n $scope.checkLineCreditCala = function () {\r\n if ($scope.varCheckLineCreditCala == false) {\r\n SweetAlertFactory.showTranslation(\r\n \"MensagemLinhaInteresseCloud\"\r\n );\r\n $scope.condicionPago = \"2\";\r\n $scope.company.CondicaoPagamento = { name: \"Credit Line\" };\r\n $(\"#condicionPago0\").attr(\"disabled\", true);\r\n $(\"#condicionPago1\").attr(\"disabled\", true);\r\n $scope.varCheckLineCreditCala = true;\r\n } else {\r\n $(\"#condicionPago0\").attr(\"disabled\", false);\r\n $(\"#condicionPago1\").attr(\"disabled\", false);\r\n $scope.varCheckLineCreditCala = false;\r\n }\r\n };\r\n\r\n /**\r\n * ValidaĆ§Ć£o do componente de EndereƧamento;\r\n * @author Raviel Chausse Silveira\r\n * @date 13/11/2017\r\n **/\r\n var resetCountry = function (callback) {\r\n $scope.company.country = null;\r\n typeof callback === \"function\" ? callback() : resetState();\r\n };\r\n var resetState = function (callback) {\r\n $scope.company.state = null;\r\n $scope.states = [];\r\n typeof callback === \"function\" ? callback() : resetCity();\r\n };\r\n var resetCity = function (callback) {\r\n $scope.company.city = null;\r\n $scope.cities = [];\r\n typeof callback === \"function\" ? callback() : null;\r\n };\r\n /** Fim da ValidaĆ§Ć£o **/\r\n\r\n var fillWithPreRegistrationData = function () {\r\n fillAllContact();\r\n if ($scope.isUpdate) {\r\n var intranet = $scope.company.intranetType;\r\n delete $rootScope.company.intranetType;\r\n $.extend(true, $scope.company, $rootScope.company);\r\n\r\n if (intranet > 0)\r\n $scope.company.intranetType = String(intranet);\r\n } else $.extend(true, $scope.company, $rootScope.company);\r\n fillWestconVendor();\r\n fillCountry();\r\n };\r\n\r\n var fillAllContact = function () {\r\n var keys = [\r\n \"contactMain\",\r\n \"contactNFe\",\r\n \"contactPurchases\",\r\n \"contactAccounts\",\r\n ];\r\n if ($scope.company.contatos && $scope.company.contatos.length > 0) {\r\n for (var i = 0; i < $scope.company.contatos.length; i++) {\r\n if (_.isUndefined($scope.company[keys[i]]))\r\n $scope.company[keys[i]] = {};\r\n _.extend(\r\n ($scope.company[keys[i]] = $scope.company.contatos[i])\r\n );\r\n }\r\n }\r\n $scope.company.userName =\r\n $rootScope.company.contactMain.nomeContato;\r\n $scope.company.userEmail = $rootScope.company.contactMain.email;\r\n $scope.company.contactMain.telefone = $scope.company.telefone;\r\n };\r\n\r\n var fillWestconVendor = function () {\r\n if (!_.isEmpty($scope.company.ukeyVendedor)) {\r\n var params = {\r\n westconCode: $scope.company.ukeyVendedor.trim(),\r\n };\r\n var vendor = _.find($scope.westconVendors, params);\r\n if (!_.isEmpty(vendor)) {\r\n $scope.company.westconVendor = vendor;\r\n $scope.company.vendedor = vendor.name;\r\n } else if (!_.isEmpty($scope.company.vendedor)) {\r\n $scope.company.westconVendor = filterFilter(\r\n $scope.westconVendors,\r\n { name: $scope.company.vendedor.trim().toUpperCase() }\r\n )[0];\r\n }\r\n } else if (!_.isEmpty($scope.company.vendedor)) {\r\n $scope.company.westconVendor = filterFilter(\r\n $scope.westconVendors,\r\n { name: $scope.company.vendedor.trim().toUpperCase() }\r\n )[0];\r\n }\r\n };\r\n\r\n var fillCountry = function () {\r\n if (!_.isEmpty($scope.company.ukeyPais)) {\r\n var params = { westconCode: $scope.company.ukeyPais.trim() };\r\n var country = _.find($scope.countries, params);\r\n if (!_.isEmpty(country)) {\r\n $scope.company.country = country;\r\n $scope.company.pais = country.name;\r\n searchState(country, fillState);\r\n }\r\n }\r\n };\r\n\r\n var fillState = function () {\r\n if (!_.isEmpty($scope.company.ukeyEstado)) {\r\n var params = { westconCode: $scope.company.ukeyEstado.trim() };\r\n var state = _.find($scope.states, params);\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n $scope.company.estado = state.name;\r\n searchCity(state, fillCity);\r\n } else if (!_.isEmpty($scope.company.estado)) {\r\n params = { name: $scope.company.estado.trim() };\r\n state = _.find($scope.states, params);\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n searchCity(state, fillCity);\r\n }\r\n }\r\n }\r\n };\r\n\r\n var fillCity = function () {\r\n if (!_.isEmpty($scope.company.cidade)) {\r\n var params = { cityName: $scope.company.cidade };\r\n var city = _.find($scope.cities, params);\r\n if (!_.isEmpty(city)) {\r\n $scope.company.city = city;\r\n $scope.company.cidade = city.name;\r\n }\r\n }\r\n };\r\n\r\n var searchState = function (country, callback) {\r\n if (!_.isEmpty(country)) {\r\n var countryId = country.westconCode;\r\n EnderecoAPI.listStates(\r\n { codErp: codErp, countryId: countryId },\r\n function (data) {\r\n $scope.states = data;\r\n typeof callback === \"function\" ? callback() : null;\r\n },\r\n $helper.throwException\r\n );\r\n } else {\r\n $scope.company.state = null;\r\n $scope.states = [];\r\n }\r\n };\r\n\r\n var searchCity = function (state, callback) {\r\n if (!_.isEmpty(state)) {\r\n var stateId = state.westconCode;\r\n EnderecoAPI.listCities(\r\n { codErp: codErp, stateId: stateId },\r\n function (data) {\r\n $scope.cities = data;\r\n typeof callback === \"function\" ? callback() : null;\r\n },\r\n $helper.throwException\r\n );\r\n } else {\r\n $scope.company.city = null;\r\n $scope.cities = [];\r\n }\r\n };\r\n\r\n var fillDiaNFe = function () {\r\n if ($scope.company.diaLimiteEmissaoNfe > 0) {\r\n $scope.company.prazoNfe = \"1\";\r\n } else {\r\n $scope.company.prazoNfe = \"0\";\r\n }\r\n };\r\n\r\n var mapCompany = function (company) {\r\n $rootScope.loading = false;\r\n if (_.isEmpty(company.cnpj)) {\r\n $scope.isUpdate = false;\r\n } else {\r\n $scope.isUpdate = true;\r\n _.extend($scope.company, company);\r\n }\r\n fillWithPreRegistrationData();\r\n fillDiaNFe();\r\n };\r\n $scope.company =\r\n _.keys($rootScope.company).length > 0\r\n ? _.extend({ codErp: codErp }, $rootScope.company)\r\n : { codErp: codErp };\r\n\r\n ApplicationResponseAPI.GetTipoCliente(\r\n { codErp: codErp },\r\n function (data) {\r\n $scope.typeClients = data;\r\n },\r\n $helper.throwException\r\n );\r\n ApplicationResponseAPI.GetClassificacao(\r\n { codErp: codErp },\r\n function (data) {\r\n $scope.financialClassifications = data;\r\n },\r\n $helper.throwException\r\n );\r\n CompanyAPI.query(\r\n { codErp: codErp },\r\n function (data) {\r\n $scope.westconVendors = data.sort(function (a, b) {\r\n return a.name.localeCompare(b.name);\r\n });\r\n },\r\n $helper.throwException\r\n );\r\n ApplicationResponseAPI.GetCondicaoPagamento(\r\n { codErp: codErp },\r\n function (data) {\r\n $scope.conditionsPayments = data;\r\n },\r\n $helper.throwException\r\n );\r\n searchState($scope.company.country);\r\n\r\n $scope.UpdateAcionista = function (vm) {\r\n $shareholderService.Update($scope, vm);\r\n };\r\n\r\n $scope.removeCommercialReferencesFile = function (name, hashKey) {\r\n $scope.commercialReferencesFiles =\r\n $scope.commercialReferencesFiles.filter(function (el) {\r\n return el.file.name != name || el.$$hashKey != hashKey;\r\n });\r\n };\r\n\r\n $scope.getCommercialReferencesFileDetails = function (e, type) {\r\n $scope[type] = true;\r\n $scope.$apply(function () {\r\n for (var i = 0; i < e.files.length; i++) {\r\n $scope.commercialReferencesFiles.push({\r\n type: type,\r\n file: e.files[i],\r\n size: e.files[i].size,\r\n });\r\n }\r\n });\r\n };\r\n\r\n // NOW UPLOAD THE FILES AND THE FORM\r\n $scope.sendCompany = function (form) {\r\n if (fnIsFormValid(form)) {\r\n var filesConcat = $scope.files.concat(\r\n $scope.commercialReferencesFiles\r\n );\r\n var xhr = new XMLHttpRequest();\r\n var data = new FormData();\r\n\r\n $rootScope.loading = true;\r\n\r\n var valid = true;\r\n if (\r\n ($scope.company.Justificativa == \"\" ||\r\n $scope.company.Justificativa == null) &&\r\n $scope.valueShareholdersQty.length == 0\r\n ) {\r\n SweetAlertFactory.showTranslation(\r\n \"RegisterCompany.Justification\"\r\n );\r\n $rootScope.loading = false;\r\n return;\r\n } else if (\r\n ($scope.company.Justificativa != \"\" ||\r\n $scope.company.Justificativa != null) &&\r\n $scope.valueShareholdersQty.length == 0\r\n ) {\r\n $scope.valueShareholdersQty.push({\r\n Percentagem: 10,\r\n Justificativa: $scope.company.Justificativa,\r\n });\r\n valid = true;\r\n }\r\n\r\n if (\r\n !$scope.checkFilesTotalSize(\r\n $scope.files.concat($scope.otherFileList)\r\n )\r\n ) {\r\n SweetAlertFactory.showTranslation(\"FileSizeLimitExceeded\");\r\n $rootScope.loading = false;\r\n return;\r\n }\r\n\r\n $scope.company.Acionista = $scope.valueShareholdersQty;\r\n if (!$shareholderService.ValidatePercentage($scope)) {\r\n SweetAlertFactory.showTranslation(\r\n \"RegisterCompany.ValidationCompanyShareholderSum\"\r\n );\r\n $rootScope.loading = false;\r\n return;\r\n }\r\n\r\n if (valid) {\r\n if ($scope.condicionPago == \"1\")\r\n $scope.company.CondicaoPagamento = { name: \"Prepaid\" };\r\n else if ($scope.condicionPago == \"2\")\r\n $scope.company.CondicaoPagamento = {\r\n name: \"Credit Line\",\r\n };\r\n\r\n addContacts();\r\n addLocale();\r\n\r\n // Upload Form Data;\r\n data.append(\r\n \"company\",\r\n JSON.stringify({ Company: $scope.company })\r\n );\r\n\r\n // Upload of File\r\n filesConcat.forEach(function (f) {\r\n data.append(f.type, f.file);\r\n });\r\n\r\n // Upload of Other File;\r\n if ($scope.otherFileList.length > 0) {\r\n $scope.otherFileList.forEach(function (otherFile) {\r\n data.append(\r\n \"other-file_\" + otherFile.Name,\r\n otherFile.Content\r\n );\r\n });\r\n }\r\n\r\n // Send Form Data;\r\n xhr.addEventListener(\"load\", transferComplete, false);\r\n xhr.addEventListener(\r\n \"error\",\r\n $scope.handleHttpError,\r\n false\r\n );\r\n\r\n if ($scope.isUpdate) {\r\n xhr.open(\"POST\", baseApi + \"company/update\");\r\n } else {\r\n xhr.open(\"POST\", baseApi + \"company/register\");\r\n }\r\n }\r\n\r\n xhr.send(data);\r\n }\r\n };\r\n\r\n function fnIsFormValid(form) {\r\n var valid = false;\r\n\r\n if (form.$invalid) {\r\n $anchorScroll();\r\n var errorTypes = Object.keys(form.$error);\r\n\r\n if (errorTypes.includes(\"required\")) {\r\n var reqFields = {};\r\n var translationKeys = [];\r\n\r\n form.$error.required.forEach(function (r) {\r\n reqFields[r.$name] = r.$$attr.key;\r\n });\r\n translationKeys = Object.values(reqFields);\r\n\r\n translationKeys.unshift(\r\n \"InvalidForm\",\r\n \"FillRequiredFields\",\r\n \"LF\"\r\n );\r\n SweetAlertFactory.showTranslationLote(translationKeys);\r\n } else if (errorTypes.includes(\"email\")) {\r\n SweetAlertFactory.showTranslation(\"InvalidEmail\");\r\n } else {\r\n SweetAlertFactory.showTranslation(\"InvalidForm\");\r\n }\r\n } else if (!$scope.isUpdate) {\r\n var translationKeys = [];\r\n\r\n if (\r\n [\r\n \"usa\",\r\n \"united states\",\r\n \"united states of america\",\r\n ].includes($scope.company.pais.toLowerCase()) &&\r\n $scope.company.contribuinte == 1\r\n ) {\r\n if ($scope.AttachExemptionSalesTaxForm !== true) {\r\n translationKeys.push(\"AttachExemptionSalesTaxForm\");\r\n }\r\n }\r\n\r\n if ($scope.condicionPago !== \"1\") {\r\n if ($scope.commercialReferencesFiles.length < 2) {\r\n translationKeys.push(\r\n \"CommercialReferencesMinFileLength\"\r\n );\r\n }\r\n if ($scope.FinancialStatements !== true) {\r\n translationKeys.push(\"FinancialStatements\");\r\n }\r\n if ($scope.EstadosFinanceirosAno !== true) {\r\n translationKeys.push(\"EstadosFinanceirosAno\");\r\n }\r\n }\r\n if ($scope.EscriturasEmpresa !== true) {\r\n translationKeys.push(\"EscriturasEmpresa\");\r\n }\r\n if ($scope.IdentificacaoFiscal !== true) {\r\n translationKeys.push(\"IdentificacaoFiscal\");\r\n }\r\n\r\n if ($scope.CopiaRepresentant !== true) {\r\n translationKeys.push(\"CopiaRepresentant\");\r\n }\r\n\r\n // Verifico se faltou algum arquivo\r\n if (translationKeys.length > 0) {\r\n $anchorScroll();\r\n translationKeys.unshift(\r\n \"InvalidForm\",\r\n \"AttachRequiredFiles\",\r\n \"LF\"\r\n );\r\n SweetAlertFactory.showTranslationLote(translationKeys);\r\n\r\n // Verifico se possui menos de 2 arquivos de CommercialReferences\r\n } else {\r\n valid = true;\r\n }\r\n } else {\r\n valid = true;\r\n }\r\n\r\n return valid;\r\n }\r\n\r\n function transferComplete(evt) {\r\n $rootScope.loading = false;\r\n if (evt.target.status == 200) {\r\n if (evt.target.response) {\r\n var response = JSON.parse(evt.target.response);\r\n if (response.sucesso) {\r\n $scope.showModalSucesso();\r\n } else {\r\n $scope.showModalError();\r\n }\r\n } else {\r\n $scope.showModalSucesso();\r\n }\r\n } else {\r\n $scope.handleHttpError(evt);\r\n }\r\n }\r\n\r\n $scope.selectVendor = function (vendor) {\r\n $companyService.selectVendor($scope.company, vendor);\r\n };\r\n\r\n $scope.selectCountry = function (country) {\r\n if (!_.isEmpty(country)) {\r\n $scope.company.country = country;\r\n $scope.company.ukeyPais = country.westconCode;\r\n $scope.company.pais = country.name;\r\n searchState(country);\r\n } else {\r\n resetState();\r\n }\r\n };\r\n\r\n $scope.selectState = function (state) {\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n $scope.company.ukeyEstado = state.westconCode;\r\n $scope.company.estado = state.name;\r\n searchCity(state);\r\n } else {\r\n resetCity();\r\n }\r\n };\r\n\r\n $scope.selectCity = function (city) {\r\n $companyService.selectCity($scope.company, city);\r\n };\r\n\r\n $scope.selectTypeClients = function (client) {\r\n $scope.company.TipoDeClienteFornecedor = client;\r\n };\r\n $scope.selectConditionPayment = function (conditionPayment) {\r\n $scope.company.CondicaoPagamento = conditionPayment;\r\n };\r\n $scope.listCountries = function (query) {\r\n return filterFilter($scope.countries, { name: query });\r\n };\r\n $scope.queryWestconVendors = function (query) {\r\n return filterFilter($scope.westconVendors, { name: query });\r\n };\r\n $scope.queryState = function (query) {\r\n var states = [];\r\n var filteredState = filterFilter($scope.states, { name: query });\r\n\r\n if (filteredState.length > 0) {\r\n states = filteredState;\r\n } else if (query) {\r\n states = [{ name: query, westconCode: \"\" }];\r\n }\r\n\r\n return states;\r\n };\r\n $scope.queryCity = function (query) {\r\n var cities = [];\r\n var filteredCities = filterFilter($scope.cities, { name: query });\r\n\r\n if (filteredCities.length > 0) {\r\n cities = filteredCities;\r\n } else if (query) {\r\n cities = [{ name: query, westconCode: \"\" }];\r\n }\r\n\r\n return cities;\r\n };\r\n $scope.queryTypeClients = function (query) {\r\n return filterFilter($scope.typeClients, { name: query });\r\n };\r\n $scope.queryConditionsPayments = function (query) {\r\n return filterFilter($scope.conditionsPayments, { name: query });\r\n };\r\n\r\n function addContactNFe(key) {\r\n if (!key) key = \"contactNFe\";\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: false,\r\n receiveNFe: true,\r\n receiveNFeXML: true,\r\n tipo: \"nfe\",\r\n });\r\n }\r\n\r\n function addContactPurchases(key) {\r\n if (!key) key = \"contactPurchases\";\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: false,\r\n receiveNFeXML: false,\r\n tipo: \"compras\",\r\n });\r\n }\r\n\r\n function addContactAccounts(key) {\r\n if (!key) key = \"contactAccounts\";\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: false,\r\n receiveNFeXML: false,\r\n tipo: \"contas\",\r\n });\r\n }\r\n\r\n function addContacts() {\r\n $scope.company.userName = $scope.company.contactMain.nomeContato;\r\n $scope.company.userEmail = $scope.company.contactMain.email;\r\n\r\n $scope.company.contatos = [\r\n {\r\n nomeContato: $scope.company.contactMain.nomeContato,\r\n telefone: $scope.company.contactMain.telefone,\r\n email: $scope.company.contactMain.email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: true,\r\n receiveNFeXML: true,\r\n tipo: \"principal\",\r\n },\r\n ];\r\n\r\n if ($scope.mainContactOnly) {\r\n delete $scope.company.contactNFe;\r\n delete $scope.company.contactPurchases;\r\n delete $scope.company.contactAccounts;\r\n\r\n addContactNFe(\"contactMain\");\r\n addContactPurchases(\"contactMain\");\r\n addContactAccounts(\"contactMain\");\r\n } else {\r\n addContactNFe();\r\n addContactPurchases();\r\n addContactAccounts();\r\n }\r\n }\r\n\r\n function addLocale() {\r\n $scope.company.locale = $translate.use();\r\n }\r\n\r\n function getDays(callback) {\r\n $scope.days = [];\r\n for (var i = 1; i < 32; i++) {\r\n $scope.days.push(i);\r\n }\r\n if (typeof callback === \"function\") {\r\n callback();\r\n }\r\n }\r\n\r\n if (\r\n _.isEmpty($rootScope.company) ||\r\n _.isEmpty($rootScope.company.cnpj)\r\n ) {\r\n document.location.href =\r\n $rootScope.sanitizeUrl(document.location.origin) +\r\n \"/#!/company-registry/new\";\r\n } else {\r\n $rootScope.loading = true;\r\n getDays(function () {\r\n CompanyAPI.getCompany(\r\n { codErp: codErp, code: $rootScope.company.cnpj },\r\n mapCompany,\r\n $helper.throwException\r\n );\r\n });\r\n }\r\n\r\n /* INNO-1359 Inicio */\r\n $scope.showModalSucesso = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: \"TD SYNNEX\",\r\n textContent: toastrMessages.success,\r\n ok: \"OK\",\r\n });\r\n $mdDialog.show(alert).finally(function () {\r\n $location.path(\"/\");\r\n });\r\n };\r\n $scope.showModalError = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: \"TD SYNNEX\",\r\n textContent: toastrMessages.errorCompanyRegister,\r\n ok: \"OK\",\r\n });\r\n $mdDialog.show(alert).finally(function () {\r\n alert = undefined;\r\n });\r\n };\r\n\r\n $scope.showModalFileSize = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: \"TD SYNNEX\",\r\n textContent: toastrMessages.errorFileSize,\r\n ok: \"OK\",\r\n });\r\n $mdDialog.show(alert).finally(function () {\r\n alert = undefined;\r\n });\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.company-registry')\r\n .controller('CompanyRegistryChileCtrl', CompanyRegistryChileCtrl);\r\n\r\n /** @ngInject */\r\n function CompanyRegistryChileCtrl (\r\n $rootScope,\r\n $scope,\r\n $anchorScroll,\r\n $helper,\r\n $location,\r\n $mdDialog,\r\n $translate,\r\n ApplicationResponseAPI,\r\n CompanyAPI,\r\n EnderecoAPI,\r\n filterFilter,\r\n SweetAlertFactory,\r\n $shareholderService, //INTRA-3114\r\n $companyService,\r\n $controller\r\n ) {\r\n \r\n $controller('BaseCompanyRegistryCtrl', {$scope: $scope});\r\n\r\n if (_.isEmpty($rootScope.company) || _.isEmpty($rootScope.company.cnpj)) {\r\n document.location.href = $rootScope.sanitizeUrl(document.location.origin) + '/#!/company-registry/new';\r\n }\r\n \r\n $rootScope.company.cnpj = $rootScope.company.cnpj.slice(0,-1) + '-' + $rootScope.company.cnpj.slice(-1);\r\n $scope.NomeFantasiaTranslateKey = 'NomeFantasiaLatam';\r\n \r\n var codERP = 8;\r\n var countryId = \"STAR_2OMUI_29U0QXDM9\";\r\n var filezSize = 0;\r\n\r\n var toastrMessages = {};\r\n function getToastrTranslations() {\r\n toastrMessages = $companyService.getToastrMessages();\r\n }\r\n getToastrTranslations();\r\n $scope.$on('$localeChangeSuccess', getToastrTranslations);\r\n\r\n /**\r\n * ValidaĆ§Ć£o do componente de EndereƧamento;\r\n * @author Raviel Chausse Silveira\r\n * @date 13/11/2017\r\n **/\r\n var resetCountry = function (callback) {\r\n $scope.company.country = null;\r\n typeof callback === 'function' ? callback() : resetState();\r\n };\r\n var resetState = function (callback) {\r\n $scope.company.state = null;\r\n $scope.states = [];\r\n typeof callback === 'function' ? callback() : resetCity();\r\n };\r\n var resetCity = function (callback) {\r\n $scope.company.city = null;\r\n $scope.cities = [];\r\n typeof callback === 'function' ? callback() : null;\r\n };\r\n /** Fim da ValidaĆ§Ć£o **/\r\n\r\n function fillWithPreRegistrationData (callback) {\r\n fillAllContact();\r\n if ($scope.isUpdate) {\r\n\r\n var intranetType = $scope.company.intranetType;\r\n delete $rootScope.company.intranetType;\r\n\r\n $.extend(true, $scope.company, $rootScope.company);\r\n\r\n if (intranetType > 0) $scope.company.intranetType = String(intranetType);\r\n\r\n } else {\r\n\r\n $.extend(true, $scope.company, $rootScope.company);\r\n\r\n }\r\n fillWestconVendor();\r\n fillState();\r\n\r\n if (typeof callback === 'function') window.setTimeout(callback, 500);\r\n };\r\n\r\n function fillAllContact () {\r\n var keys = [\"contactMain\", \"contactPurchases\", \"contactAccounts\", \"contactLogistics\"];\r\n if ($scope.company.contatos && $scope.company.contatos.length > 0) {\r\n for (var i = 0; i < $scope.company.contatos.length; i++) {\r\n if (_.isUndefined($scope.company[keys[i]])) $scope.company[keys[i]] = {};\r\n _.extend($scope.company[keys[i]] = $scope.company.contatos[i]);\r\n }\r\n }\r\n $scope.company.userName = $rootScope.company.contactMain.nomeContato;\r\n $scope.company.userEmail = $rootScope.company.contactMain.email;\r\n $scope.company.contactMain.telefone = $scope.company.telefone;\r\n };\r\n\r\n function fillWestconVendor () {\r\n if (!_.isEmpty($scope.company.ukeyVendedor)) {\r\n var params = { westconCode: $scope.company.ukeyVendedor.trim() };\r\n var vendor = _.find($scope.westconVendors, params);\r\n if (!_.isEmpty(vendor)) {\r\n $scope.company.westconVendor = vendor;\r\n $scope.company.vendedor = vendor.name;\r\n } else if (!_.isEmpty($scope.company.vendedor)) {\r\n $scope.company.westconVendor = filterFilter($scope.westconVendors, { name: $scope.company.vendedor.trim().toUpperCase() })[0];\r\n }\r\n } else if (!_.isEmpty($scope.company.vendedor)) {\r\n $scope.company.westconVendor = filterFilter($scope.westconVendors, { name: $scope.company.vendedor.trim().toUpperCase() })[0];\r\n }\r\n };\r\n\r\n function fillState () {\r\n if (!_.isEmpty($scope.company.ukeyEstado)) {\r\n var params = { westconCode: $scope.company.ukeyEstado.trim() };\r\n var state = _.find($scope.states, params);\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n $scope.company.estado = state.name;\r\n searchCity(state, fillCity);\r\n } else if (!_.isEmpty($scope.company.estado)) {\r\n params = { name: $scope.company.estado.trim() };\r\n state = _.find($scope.states, params);\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n searchCity(state, fillCity);\r\n }\r\n }\r\n }\r\n };\r\n\r\n function fillCity () {\r\n if (!_.isEmpty($scope.company.ukeyCidade)) {\r\n var params = { westconCode: $scope.company.ukeyCidade.trim() };\r\n var city = _.find($scope.cities, params);\r\n if (!_.isEmpty(city)) {\r\n $scope.company.city = city;\r\n $scope.company.cidade = city.name;\r\n } else if (!_.isEmpty($scope.company.cidade)) {\r\n $scope.company.city = _.find($scope.cities, { name: $scope.company.cidade.trim() });\r\n }\r\n }\r\n };\r\n\r\n var searchState = function (country, callback) {\r\n if (!_.isEmpty(country)) {\r\n var countryId = country.westconCode;\r\n EnderecoAPI.listStates({ codErp: codERP, countryId: countryId }, function (data) {\r\n $scope.states = data;\r\n typeof callback === 'function' ? callback() : null;\r\n }, $helper.throwException);\r\n } else {\r\n $scope.company.state = null;\r\n $scope.states = [];\r\n }\r\n };\r\n\r\n var searchCity = function (state, callback) {\r\n if (!_.isEmpty(state)) {\r\n var stateId = state.westconCode;\r\n EnderecoAPI.listCities({ codErp: codERP, stateId: stateId }, function (data) {\r\n $scope.cities = data;\r\n typeof callback === 'function' ? callback() : null;\r\n }, $helper.throwException);\r\n } else {\r\n $scope.company.city = null;\r\n $scope.cities = [];\r\n }\r\n };\r\n\r\n var mapCompany = function (company) {\r\n $rootScope.loading = false;\r\n if (_.isEmpty(company.cnpj)) {\r\n $scope.isUpdate = false;\r\n } else {\r\n $scope.isUpdate = true;\r\n _.extend($scope.company, company);\r\n }\r\n fillWithPreRegistrationData(function () {\r\n $('#tax-id').attr('disabled', true);\r\n });\r\n };\r\n\r\n $scope.codERP = codERP;\r\n $scope.cities = [];\r\n $scope.countries = [];\r\n $scope.files = [];\r\n $scope.financialClassifications = [];\r\n $scope.isUpdate = false;\r\n $scope.mainContactOnly = false;\r\n $scope.otherFileList = [];\r\n $scope.states = [];\r\n $scope.timeoutID = null;\r\n $scope.typeClients = [];\r\n $scope.westconVendors = [];\r\n $scope.shareholdersQty = 0; //INTRA-3114\r\n $scope.valueShareholdersQty = []; //INTRA-3114\r\n $scope.Justificativa = \"\";\r\n\r\n $scope.company = (_.keys($rootScope.company).length > 0) ? _.extend({ codErp: codERP }, $rootScope.company) : { codErp: codERP };\r\n\r\n ApplicationResponseAPI.GetTipoCliente({ codErp: codERP }, function (data) { $scope.typeClients = data }, $helper.throwException);\r\n ApplicationResponseAPI.GetClassificacao({ codErp: codERP }, function (data) { $scope.financialClassifications = data }, $helper.throwException);\r\n CompanyAPI.query({ codErp: codERP }, function (data) { $scope.westconVendors = data.sort(function (a,b) { return a.name.localeCompare(b.name) }) }, $helper.throwException);\r\n ApplicationResponseAPI.GetCondicaoPagamento({ codErp: codERP }, function (data) { $scope.conditionsPayments = data }, $helper.throwException);\r\n EnderecoAPI.listStates({ codErp: codERP, countryId: countryId }, function (data) { $scope.states = data }, $helper.throwException);\r\n\r\n // NOW UPLOAD THE FILES AND THE FORM\r\n $scope.sendCompany = function (form) {\r\n if (fnIsFormValid(form)) {\r\n $rootScope.loading = true;\r\n var xhr = new XMLHttpRequest();\r\n var data = new FormData();\r\n\r\n var valid = true;\r\n if (($scope.company.Justificativa == \"\" || $scope.company.Justificativa == null) && $scope.valueShareholdersQty.length == 0) {\r\n SweetAlertFactory.showTranslation('RegisterCompany.Justification');\r\n $rootScope.loading = false;\r\n return;\r\n }\r\n else if(($scope.company.Justificativa != \"\" || $scope.company.Justificativa != null) && $scope.valueShareholdersQty.length == 0){\r\n $scope.valueShareholdersQty.push({\r\n Percentagem: 10,\r\n Justificativa: $scope.company.Justificativa\r\n });\r\n valid = true;\r\n }\r\n\r\n if(!$scope.checkFilesTotalSize($scope.files.concat($scope.otherFileList))){\r\n SweetAlertFactory.showTranslation('FileSizeLimitExceeded');\r\n $rootScope.loading = false;\r\n return;\r\n }\r\n\r\n if(valid) {\r\n addContacts();\r\n addLocale();\r\n \r\n $scope.company.ukeyPais = \"STAR_2OMUI_29U0QXDM9\";\r\n $scope.company.pais = \"Chile\";\r\n $scope.company.Acionista = $scope.valueShareholdersQty; //INTRA-3114\r\n\r\n //INTRA-2776\r\n if ($scope.condicaoPagamentoArquivo == '1') $scope.company.CondicaoPagamento = { name: \"Prepaid\" };\r\n else if ($scope.condicaoPagamentoArquivo == '2') $scope.company.CondicaoPagamento = { name: \"Credit limit\" };\r\n else if ($scope.condicaoPagamentoArquivo == '3') $scope.company.CondicaoPagamento = { name: \"Paid with TC\" };\r\n \r\n // Upload Form Data;\r\n data.append('company', JSON.stringify({ Company: $scope.company }));\r\n \r\n // Upload of File\r\n $scope.files.forEach(function (f) { data.append(f.type, f.file) });\r\n \r\n // Upload of Other File;\r\n if ($scope.otherFileList.length > 0) {\r\n $scope.otherFileList.forEach(function (otherFile) { data.append('other-file_' + otherFile.Name, otherFile.Content) });\r\n }\r\n \r\n //INTRA-3114\r\n if (!$shareholderService.ValidatePercentage($scope)){\r\n SweetAlertFactory.showTranslation('RegisterCompany.ValidationCompanyShareholderSum');\r\n $rootScope.loading = false;\r\n valid = false;\r\n }\r\n\r\n // Send Form Data;\r\n xhr.addEventListener(\"load\", transferComplete, false);\r\n xhr.addEventListener(\"error\", $scope.handleHttpError, false);\r\n\r\n if ($scope.isUpdate) {\r\n xhr.open(\"POST\", baseApi + 'company/update');\r\n } else {\r\n xhr.open(\"POST\", baseApi + 'company/register');\r\n }\r\n\r\n xhr.send(data);\r\n }\r\n }\r\n }\r\n\r\n function fnIsFormValid (form) {\r\n var valid = false;\r\n var interestMissing = false;\r\n\r\n if ($scope.company.linhaInteresse == null || $scope.company.linhaInteresse.length == 0) {\r\n interestMissing = true; \r\n } \r\n\r\n if (form.$invalid || interestMissing) {\r\n $anchorScroll();\r\n var errorTypes = Object.keys(form.$error);\r\n\r\n if (errorTypes.includes('required') || interestMissing) {\r\n var reqFields = {};\r\n var translationKeys = [];\r\n\r\n if (form.$error.required)\r\n form.$error.required.forEach(function(r){reqFields[r.$name] = r.$$attr.key;});\r\n\r\n if (interestMissing) \r\n reqFields['LinhaInteresse'] = 'LinhaInteresse';\r\n\r\n translationKeys = Object.values(reqFields);\r\n\r\n translationKeys.unshift('InvalidForm', 'FillRequiredFields', 'LF');\r\n SweetAlertFactory.showTranslationLote(translationKeys);\r\n\r\n } else if (errorTypes.includes('email') ) {\r\n SweetAlertFactory.showTranslation('InvalidEmail');\r\n\r\n } else {\r\n SweetAlertFactory.showTranslation('InvalidForm');\r\n\r\n }\r\n\r\n } else if (!$scope.isUpdate && $scope.condicaoPagamentoArquivo == '2') {\r\n var translationKeys = [];\r\n\r\n if ($scope.SingleDocument !== true) {translationKeys.push('SingleDocumentChile')}\r\n \r\n if ($scope.BankStatements !== true) {translationKeys.push('BankStatementsChile')}\r\n\r\n if (translationKeys.length > 0) {\r\n $anchorScroll();\r\n translationKeys.unshift('InvalidForm', 'AttachRequiredFiles', 'LF');\r\n SweetAlertFactory.showTranslationLote(translationKeys);\r\n } else {\r\n valid = true;\r\n }\r\n\r\n } else {\r\n valid = true;\r\n }\r\n\r\n return valid;\r\n }\r\n\r\n function transferComplete (evt) {\r\n $rootScope.loading = false;\r\n if (evt.target.status == 200) {\r\n if (evt.target.response) {\r\n var response = JSON.parse(evt.target.response);\r\n if (response.sucesso) {\r\n $scope.showModalSucesso();\r\n } else {\r\n $scope.showModalError();\r\n }\r\n } else {\r\n $scope.showModalSucesso();\r\n }\r\n } else {\r\n $scope.handleHttpError(evt);\r\n }\r\n }\r\n\r\n $scope.selectVendor = function (vendor) {\r\n $companyService.selectVendor($scope.company, vendor)\r\n }\r\n\r\n $scope.selectCountry = function (country) {\r\n if (!_.isEmpty(country)) {\r\n $scope.company.country = country;\r\n $scope.company.ukeyPais = country.westconCode;\r\n $scope.company.pais = country.name;\r\n searchState(country);\r\n } else {\r\n resetState();\r\n }\r\n }\r\n\r\n $scope.selectState = function (state) {\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n $scope.company.ukeyEstado = state.westconCode;\r\n $scope.company.estado = state.name;\r\n searchCity(state);\r\n } else {\r\n resetCity();\r\n }\r\n }\r\n\r\n $scope.selectCity = function (city) {\r\n $companyService.selectCity($scope.company, city);\r\n }\r\n\r\n $scope.selectTypeClients = function (client) { $scope.company.TipoDeClienteFornecedor = client };\r\n $scope.selectConditionPayment = function (conditionPayment) { $scope.company.CondicaoPagamento = conditionPayment };\r\n //$scope.listCountries = function (query) { return filterFilter($scope.countries, { name: query }) };\r\n $scope.queryWestconVendors = function (query) { return filterFilter($scope.westconVendors, { name: query }) };\r\n $scope.queryState = function (query) { return filterFilter($scope.states, { name: query }) };\r\n $scope.queryCity = function (query) { return filterFilter($scope.cities, { name: query }) };\r\n $scope.queryTypeClients = function (query) { return filterFilter($scope.typeClients, { name: query }) };\r\n $scope.queryConditionsPayments = function (query) { return filterFilter($scope.conditionsPayments, { name: query }) };\r\n\r\n function addContactPurchases (key) {\r\n if (!key) key = 'contactPurchases';\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: false,\r\n receiveNFeXML: false,\r\n tipo: 'compras'\r\n });\r\n }\r\n\r\n function addContactAccounts (key) {\r\n if (!key) key = 'contactAccounts';\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: false,\r\n receiveNFeXML: false,\r\n tipo: 'contas'\r\n });\r\n }\r\n\r\n function addContactLogistics (key) {\r\n if (!key) key = 'contactLogistics';\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: false,\r\n receiveNFeXML: false,\r\n tipo: 'logistica'\r\n });\r\n }\r\n\r\n function addContacts() {\r\n $scope.company.userName = $scope.company.contactMain.nomeContato;\r\n $scope.company.userEmail = $scope.company.contactMain.email;\r\n\r\n $scope.company.contatos = [{\r\n nomeContato: $scope.company.contactMain.nomeContato,\r\n telefone: $scope.company.contactMain.telefone,\r\n email: $scope.company.contactMain.email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: true,\r\n receiveNFeXML: true,\r\n tipo: 'principal'\r\n }];\r\n\r\n if ($scope.mainContactOnly) {\r\n delete $scope.company.contactPurchases;\r\n delete $scope.company.contactAccounts;\r\n delete $scope.company.contactLogistics;\r\n \r\n addContactPurchases('contactMain');\r\n addContactAccounts('contactMain');\r\n addContactLogistics('contactMain');\r\n } else {\r\n addContactPurchases();\r\n addContactAccounts();\r\n addContactLogistics();\r\n }\r\n\r\n }\r\n\r\n function addLocale() {\r\n $scope.company.locale = $translate.use();\r\n }\r\n\r\n function getDays(callback) {\r\n $scope.days = [];\r\n for (var i = 1; i < 32; i++) {\r\n $scope.days.push(i);\r\n }\r\n if (typeof callback === 'function') {\r\n callback();\r\n }\r\n }\r\n\r\n if (_.isEmpty($rootScope.company) || _.isEmpty($rootScope.company.cnpj)) {\r\n document.location.href = $rootScope.sanitizeUrl(document.location.origin) + '/#!/company-registry/new';\r\n } else {\r\n $rootScope.loading = true;\r\n getDays(function () {\r\n CompanyAPI.getCompany({ codErp: codERP, code: $rootScope.company.cnpj }, mapCompany, $helper.throwException);\r\n });\r\n }\r\n\r\n /* INNO-1359 Inicio */\r\n $scope.showModalSucesso = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: 'TD SYNNEX',\r\n textContent: toastrMessages.success,\r\n ok: 'OK'\r\n });\r\n $mdDialog\r\n .show( alert )\r\n .finally(function () {\r\n $location.path(\"/\");\r\n });\r\n };\r\n $scope.showModalError = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: 'TD SYNNEX',\r\n textContent: toastrMessages.errorCompanyRegister,\r\n ok: 'OK'\r\n });\r\n $mdDialog\r\n .show( alert )\r\n .finally(function () {\r\n alert = undefined;\r\n });\r\n };\r\n\r\n $scope.showModalFileSize = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: 'TD SYNNEX',\r\n textContent: toastrMessages.errorFileSize,\r\n ok: 'OK'\r\n });\r\n $mdDialog\r\n .show( alert )\r\n .finally(function () {\r\n alert = undefined;\r\n });\r\n };\r\n \r\n //INTRA-3114\r\n $scope.UpdateAcionista = function (vm) {\r\n $shareholderService.Update ($scope, vm)\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"my.pages.company-registry\")\r\n .controller(\"CompanyRegistryColombiaCtrl\", CompanyRegistryColombiaCtrl);\r\n\r\n /** @ngInject */\r\n function CompanyRegistryColombiaCtrl(\r\n $rootScope,\r\n $scope,\r\n $anchorScroll,\r\n $helper,\r\n $location,\r\n $mdDialog,\r\n $translate,\r\n ApplicationResponseAPI,\r\n CompanyAPI,\r\n EnderecoAPI,\r\n filterFilter,\r\n SweetAlertFactory,\r\n $shareholderService, //INTRA-3114\r\n $companyService,\r\n $controller\r\n ) {\r\n \r\n $controller('BaseCompanyRegistryCtrl', {$scope: $scope});\r\n\r\n $scope.NomeFantasiaTranslateKey = \"NomeFantasiaLatam\";\r\n\r\n var codERP = 4;\r\n var countryId = \"STAR_2OMUI_29S0ZJAOE\";\r\n var filezSize = 0;\r\n\r\n var toastrMessages = {};\r\n function getToastrTranslations() {\r\n toastrMessages = $companyService.getToastrMessages();\r\n }\r\n getToastrTranslations();\r\n $scope.$on('$localeChangeSuccess', getToastrTranslations);\r\n\r\n /**\r\n * ValidaĆ§Ć£o do componente de EndereƧamento;\r\n * @author Raviel Chausse Silveira\r\n * @date 13/11/2017\r\n **/\r\n var resetCountry = function (callback) {\r\n $scope.company.country = null;\r\n typeof callback === \"function\" ? callback() : resetState();\r\n };\r\n var resetState = function (callback) {\r\n $scope.company.state = null;\r\n $scope.states = [];\r\n typeof callback === \"function\" ? callback() : resetCity();\r\n };\r\n var resetCity = function (callback) {\r\n $scope.company.city = null;\r\n $scope.cities = [];\r\n typeof callback === \"function\" ? callback() : null;\r\n };\r\n /** Fim da ValidaĆ§Ć£o **/\r\n\r\n function fillWithPreRegistrationData(callback) {\r\n fillAllContact();\r\n if ($scope.isUpdate) {\r\n var intranetType = $scope.company.intranetType;\r\n delete $rootScope.company.intranetType;\r\n\r\n var tipoJuridico = Number($scope.company.tipoJuridico) || 3;\r\n delete $rootScope.company.tipoJuridico;\r\n\r\n $.extend(true, $scope.company, $rootScope.company);\r\n\r\n if (intranetType > 0)\r\n $scope.company.intranetType = String(intranetType);\r\n if (tipoJuridico > 0)\r\n $scope.company.tipoJuridico = String(tipoJuridico);\r\n } else {\r\n $.extend(true, $scope.company, $rootScope.company);\r\n }\r\n fillWestconVendor();\r\n fillState();\r\n if (typeof callback === \"function\")\r\n window.setTimeout(callback, 500);\r\n }\r\n\r\n function fillAllContact() {\r\n var keys = [\r\n \"contactMain\",\r\n \"contactNFe\",\r\n \"contactPurchases\",\r\n \"contactAccounts\",\r\n ];\r\n if ($scope.company.contatos && $scope.company.contatos.length > 0) {\r\n for (var i = 0; i < $scope.company.contatos.length; i++) {\r\n if (_.isUndefined($scope.company[keys[i]]))\r\n $scope.company[keys[i]] = {};\r\n _.extend(\r\n ($scope.company[keys[i]] = $scope.company.contatos[i])\r\n );\r\n }\r\n }\r\n $scope.company.userName =\r\n $rootScope.company.contactMain.nomeContato;\r\n $scope.company.userEmail = $rootScope.company.contactMain.email;\r\n $scope.company.contactMain.telefone = $scope.company.telefone;\r\n }\r\n\r\n function fillWestconVendor() {\r\n if (!_.isEmpty($scope.company.ukeyVendedor)) {\r\n var params = {\r\n westconCode: $scope.company.ukeyVendedor.trim(),\r\n };\r\n var vendor = _.find($scope.westconVendors, params);\r\n if (!_.isEmpty(vendor)) {\r\n $scope.company.westconVendor = vendor;\r\n $scope.company.vendedor = vendor.name;\r\n } else if (!_.isEmpty($scope.company.vendedor)) {\r\n $scope.company.westconVendor = filterFilter(\r\n $scope.westconVendors,\r\n { name: $scope.company.vendedor.trim().toUpperCase() }\r\n )[0];\r\n }\r\n } else if (!_.isEmpty($scope.company.vendedor)) {\r\n $scope.company.westconVendor = filterFilter(\r\n $scope.westconVendors,\r\n { name: $scope.company.vendedor.trim().toUpperCase() }\r\n )[0];\r\n }\r\n }\r\n\r\n function fillState() {\r\n if (!_.isEmpty($scope.company.ukeyEstado)) {\r\n var params = { westconCode: $scope.company.ukeyEstado.trim() };\r\n var state = _.find($scope.states, params);\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n $scope.company.estado = state.name;\r\n searchCity(state, fillCity);\r\n } else if (!_.isEmpty($scope.company.estado)) {\r\n params = { name: $scope.company.estado.trim() };\r\n state = _.find($scope.states, params);\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n searchCity(state, fillCity);\r\n }\r\n }\r\n } else if (!_.isEmpty($scope.company.estado)) {\r\n $scope.company.state = $scope.company.estado;\r\n fillCity();\r\n }\r\n }\r\n\r\n function fillCity() {\r\n if (!_.isEmpty($scope.company.ukeyCidade)) {\r\n var params = { westconCode: $scope.company.ukeyCidade.trim() };\r\n var city = _.find($scope.cities, params);\r\n if (!_.isEmpty(city)) {\r\n $scope.company.city = city;\r\n $scope.company.cidade = city.name;\r\n } else if (!_.isEmpty($scope.company.cidade)) {\r\n $scope.company.city = _.find($scope.cities, {\r\n name: $scope.company.cidade.trim(),\r\n });\r\n }\r\n } else if (!_.isEmpty($scope.company.cidade)) {\r\n $scope.company.city = $scope.company.cidade;\r\n }\r\n }\r\n\r\n var searchState = function (country, callback) {\r\n if (!_.isEmpty(country)) {\r\n var countryId = country.westconCode;\r\n EnderecoAPI.listStates(\r\n { codErp: codERP, countryId: countryId },\r\n function (data) {\r\n $scope.states = data;\r\n typeof callback === \"function\" ? callback() : null;\r\n },\r\n $helper.throwException\r\n );\r\n } else {\r\n $scope.company.state = null;\r\n $scope.states = [];\r\n }\r\n };\r\n\r\n var searchCity = function (state, callback) {\r\n if (!_.isEmpty(state) && !_.isEmpty($scope.company.ukeyEstado)) {\r\n var stateId = state.westconCode;\r\n EnderecoAPI.listCities(\r\n { codErp: codERP, stateId: stateId },\r\n function (data) {\r\n $scope.cities = data;\r\n typeof callback === \"function\" ? callback() : null;\r\n },\r\n $helper.throwException\r\n );\r\n } else {\r\n $scope.company.city = null;\r\n $scope.cities = [];\r\n }\r\n };\r\n\r\n var mapCompany = function (company) {\r\n $rootScope.loading = false;\r\n if (_.isEmpty(company.cnpj)) {\r\n $scope.isUpdate = false;\r\n } else if (company.status == \"Nova empresa\") {\r\n _.extend($scope.company, company);\r\n } else {\r\n $scope.isUpdate = true;\r\n _.extend($scope.company, company);\r\n }\r\n fillWithPreRegistrationData(function () {\r\n $(\".radio-tipo-juridico\").attr(\"disabled\", true);\r\n $(\"#tax-id\").attr(\"disabled\", true);\r\n });\r\n };\r\n\r\n $scope.codERP = codERP;\r\n $scope.cities = [];\r\n $scope.countries = [];\r\n $scope.files = [];\r\n $scope.financialClassifications = [];\r\n $scope.isUpdate = false;\r\n $scope.mainContactOnly = false;\r\n $scope.otherFileList = [];\r\n $scope.states = [];\r\n $scope.timeoutID = null;\r\n $scope.typeClients = [];\r\n $scope.westconVendors = [];\r\n $scope.shareholdersQty = 0;\r\n $scope.valueShareholdersQty = [];\r\n $scope.Justificativa = \"\";\r\n\r\n $scope.company =\r\n _.keys($rootScope.company).length > 0\r\n ? _.extend({ codErp: codERP }, $rootScope.company)\r\n : { codErp: codERP };\r\n\r\n ApplicationResponseAPI.GetTipoCliente(\r\n { codErp: codERP },\r\n function (data) {\r\n $scope.typeClients = data;\r\n },\r\n $helper.throwException\r\n );\r\n ApplicationResponseAPI.GetClassificacao(\r\n { codErp: codERP },\r\n function (data) {\r\n $scope.financialClassifications = data;\r\n },\r\n $helper.throwException\r\n );\r\n CompanyAPI.query(\r\n { codErp: codERP },\r\n function (data) {\r\n $scope.westconVendors = data.sort(function (a, b) {\r\n return a.name.localeCompare(b.name);\r\n });\r\n },\r\n $helper.throwException\r\n );\r\n ApplicationResponseAPI.GetCondicaoPagamento(\r\n { codErp: codERP },\r\n function (data) {\r\n $scope.conditionsPayments = data;\r\n },\r\n $helper.throwException\r\n );\r\n EnderecoAPI.listStates(\r\n { codErp: codERP, countryId: countryId },\r\n function (data) {\r\n $scope.states = data;\r\n },\r\n $helper.throwException\r\n );\r\n \r\n $scope.UpdateAcionista = function (vm) {\r\n $shareholderService.Update ($scope, vm)\r\n };\r\n\r\n // NOW UPLOAD THE FILES AND THE FORM\r\n $scope.sendCompany = function (form) {\r\n if (fnIsFormValid(form)) {\r\n $rootScope.loading = true;\r\n var xhr = new XMLHttpRequest();\r\n var data = new FormData();\r\n\r\n var valid = true;\r\n\r\n if($scope.shareholdersQty == 0 || $scope.valueShareholdersQty.length == 0) {\r\n SweetAlertFactory.showTranslation('RegisterCompany.ShareholdersQty.Equals0');\r\n $rootScope.loading = false;\r\n return;\r\n }\r\n\r\n if(($scope.company.Justificativa != \"\" || $scope.company.Justificativa != null) && $scope.valueShareholdersQty.length == 0){\r\n $scope.valueShareholdersQty.push({\r\n Percentagem: 10,\r\n Justificativa: $scope.company.Justificativa\r\n });\r\n valid = true;\r\n }\r\n\r\n if(!$scope.checkFilesTotalSize($scope.files.concat($scope.otherFileList))){\r\n SweetAlertFactory.showTranslation('FileSizeLimitExceeded');\r\n $rootScope.loading = false;\r\n return;\r\n }\r\n\r\n if(valid) {\r\n addContacts();\r\n addLocale();\r\n \r\n $scope.company.ukeyPais = \"STAR_2OMUI_29S0ZJAOE\";\r\n $scope.company.pais = \"Colombia\";\r\n $scope.company.estado = form.westconCidade.$modelValue;\r\n $scope.company.cidade = form.westconCidade.$modelValue;\r\n $scope.company.codERP = codERP;\r\n $scope.company.condicaoPagamentoArquivo = $scope.condicaoPagamentoArquivo;\r\n $scope.company.Acionista = $scope.valueShareholdersQty;\r\n \r\n //INTRA-2776\r\n if ($scope.condicaoPagamentoArquivo == \"1\")\r\n $scope.company.CondicaoPagamento = { name: \"Prepaid\" };\r\n else if ($scope.condicaoPagamentoArquivo == \"2\")\r\n $scope.company.CondicaoPagamento = { name: \"Credit Line\" };\r\n \r\n // Upload Form Data;\r\n data.append(\r\n \"company\",\r\n JSON.stringify({ Company: $scope.company })\r\n );\r\n \r\n // Upload of File\r\n $scope.files.forEach(function (f) {\r\n data.append(f.type, f.file);\r\n });\r\n \r\n // Upload of Other File;\r\n if ($scope.otherFileList.length > 0) {\r\n $scope.otherFileList.forEach(function (otherFile) {\r\n data.append(\r\n \"other-file_\" + otherFile.Name,\r\n otherFile.Content\r\n );\r\n });\r\n }\r\n \r\n //INTRA-3114\r\n if (!$shareholderService.ValidatePercentage($scope)){\r\n SweetAlertFactory.showTranslation('RegisterCompany.ValidationCompanyShareholderSum');\r\n $rootScope.loading = false;\r\n valid = false;\r\n }\r\n \r\n // Send Form Data;\r\n xhr.addEventListener(\"load\", transferComplete, false);\r\n xhr.addEventListener(\"error\", $scope.handleHttpError, false );\r\n \r\n if ($scope.isUpdate) {\r\n xhr.open(\"POST\", baseApi + \"company/update\");\r\n } else {\r\n xhr.open(\"POST\", baseApi + \"company/register\");\r\n }\r\n \r\n xhr.send(data);\r\n }\r\n }\r\n };\r\n\r\n function fnIsFormValid(form) {\r\n var valid = false;\r\n\r\n if (form.$invalid) {\r\n $anchorScroll();\r\n var errorTypes = Object.keys(form.$error);\r\n\r\n if (errorTypes.includes(\"required\")) {\r\n var reqFields = {};\r\n var translationKeys = [];\r\n\r\n form.$error.required.forEach(function (r) {\r\n reqFields[r.$name] = r.$$attr.key;\r\n });\r\n translationKeys = Object.values(reqFields);\r\n\r\n translationKeys.unshift(\r\n \"InvalidForm\",\r\n \"FillRequiredFields\",\r\n \"LF\"\r\n );\r\n SweetAlertFactory.showTranslationLote(translationKeys);\r\n } else if (errorTypes.includes(\"email\")) {\r\n SweetAlertFactory.showTranslation(\"InvalidEmail\");\r\n } else {\r\n SweetAlertFactory.showTranslation(\"InvalidForm\");\r\n }\r\n } else if (!$scope.isUpdate) {\r\n var translationKeys = [];\r\n\r\n if ($scope.SingleDocument !== true) {\r\n translationKeys.push(\"SingleDocument\");\r\n }\r\n if ($scope.CertificateShareholder !== true) {\r\n translationKeys.push(\"CertificateShareholder\");\r\n }\r\n if ($scope.CommercialReferences !== true) {\r\n translationKeys.push(\"CommercialsReferences\");\r\n }\r\n if ($scope.SingleTaxRegistration !== true) {\r\n translationKeys.push(\"SingleTaxRegistration\");\r\n }\r\n if ($scope.ChamberOfCommerceAndCertificate !== true) {\r\n translationKeys.push(\"ChamberOfCommerceAndCertificate\");\r\n }\r\n\r\n if ($scope.condicaoPagamentoArquivo == 2) {\r\n if ($scope.BankStatements !== true) {\r\n translationKeys.push(\"BankStatements\");\r\n }\r\n if ($scope.FinancialStatementsCurrentYear !== true) {\r\n translationKeys.push(\"FinancialStatementsCurrentYear\");\r\n }\r\n if ($scope.BankingCommercialsReferences !== true) {\r\n translationKeys.push(\"BankingReferences\");\r\n }\r\n }\r\n\r\n if (translationKeys.length > 0) {\r\n $anchorScroll();\r\n translationKeys.unshift(\r\n \"InvalidForm\",\r\n \"AttachRequiredFiles\",\r\n \"LF\"\r\n );\r\n SweetAlertFactory.showTranslationLote(translationKeys);\r\n } else {\r\n valid = true;\r\n }\r\n } else {\r\n valid = true;\r\n }\r\n\r\n return valid;\r\n }\r\n\r\n function transferComplete(evt) {\r\n $rootScope.loading = false;\r\n if (evt.target.status == 200) {\r\n if (evt.target.response) {\r\n var response = JSON.parse(evt.target.response);\r\n if (response.sucesso) {\r\n $scope.showModalSucesso();\r\n } else {\r\n $scope.showModalError();\r\n }\r\n } else {\r\n $scope.showModalSucesso();\r\n }\r\n } else {\r\n $scope.handleHttpError(evt);\r\n }\r\n }\r\n\r\n $scope.selectVendor = function (vendor) {\r\n $companyService.selectVendor($scope.company, vendor)\r\n };\r\n\r\n $scope.selectState = function (state) {\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n $scope.company.ukeyEstado = state.westconCode;\r\n $scope.company.estado = state.name;\r\n searchCity(state);\r\n } else {\r\n resetCity();\r\n }\r\n };\r\n\r\n $scope.selectCity = function (city) {\r\n $companyService.selectCity($scope.company, city);\r\n };\r\n\r\n $scope.selectTypeClients = function (client) {\r\n $scope.company.TipoDeClienteFornecedor = client;\r\n };\r\n $scope.selectConditionPayment = function (conditionPayment) {\r\n $scope.company.CondicaoPagamento = conditionPayment;\r\n };\r\n //$scope.listCountries = function (query) { return filterFilter($scope.countries, { name: query }) };\r\n $scope.queryWestconVendors = function (query) {\r\n return filterFilter($scope.westconVendors, { name: query });\r\n };\r\n $scope.queryState = function (query) {\r\n return filterFilter($scope.states, { name: query });\r\n };\r\n $scope.queryCity = function (query) {\r\n return filterFilter($scope.cities, { name: query });\r\n };\r\n $scope.queryTypeClients = function (query) {\r\n return filterFilter($scope.typeClients, { name: query });\r\n };\r\n $scope.queryConditionsPayments = function (query) {\r\n return filterFilter($scope.conditionsPayments, { name: query });\r\n };\r\n\r\n function addContactPurchases(key) {\r\n if (!key) key = \"contactPurchases\";\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: false,\r\n receiveNFeXML: false,\r\n tipo: \"Responsable para recepciĆ³n de facturas electrĆ³nicas (asociado con la DIAN)\",\r\n });\r\n }\r\n\r\n function addContactAccounts(key) {\r\n if (!key) key = \"contactAccounts\";\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: false,\r\n receiveNFeXML: false,\r\n tipo: \"contas\",\r\n });\r\n }\r\n\r\n function addContacts() {\r\n $scope.company.userName = $scope.company.contactMain.nomeContato;\r\n $scope.company.userEmail = $scope.company.contactMain.email;\r\n\r\n $scope.company.contatos = [\r\n {\r\n nomeContato: $scope.company.contactMain.nomeContato,\r\n telefone: $scope.company.contactMain.telefone,\r\n email: $scope.company.contactMain.email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: true,\r\n receiveNFeXML: true,\r\n tipo: \"principal\",\r\n },\r\n ];\r\n\r\n if ($scope.mainContactOnly) {\r\n delete $scope.company.contactPurchases;\r\n delete $scope.company.contactAccounts;\r\n\r\n addContactPurchases(\"contactMain\");\r\n addContactAccounts(\"contactMain\");\r\n \r\n } else {\r\n addContactPurchases();\r\n addContactAccounts();\r\n }\r\n\r\n }\r\n\r\n function addLocale() {\r\n $scope.company.locale = $translate.use();\r\n }\r\n\r\n function getDays(callback) {\r\n $scope.days = [];\r\n for (var i = 1; i < 32; i++) {\r\n $scope.days.push(i);\r\n }\r\n if (typeof callback === \"function\") {\r\n callback();\r\n }\r\n }\r\n\r\n if (\r\n _.isEmpty($rootScope.company) ||\r\n _.isEmpty($rootScope.company.cnpj)\r\n ) {\r\n document.location.href =\r\n $rootScope.sanitizeUrl(document.location.origin) + \"/#!/company-registry/new\";\r\n } else {\r\n $rootScope.loading = true;\r\n getDays(function () {\r\n CompanyAPI.getCompany(\r\n {\r\n codErp: codERP,\r\n code: $rootScope.company.cnpj,\r\n tipoJuridico: $rootScope.company.tipoJuridico,\r\n },\r\n mapCompany,\r\n $helper.throwException\r\n );\r\n });\r\n }\r\n\r\n /* INNO-1359 Inicio */\r\n $scope.showModalSucesso = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: \"TD SYNNEX\",\r\n textContent: toastrMessages.success,\r\n ok: \"OK\",\r\n });\r\n $mdDialog.show(alert).finally(function () {\r\n $location.path(\"/\");\r\n });\r\n };\r\n $scope.showModalError = function () {\r\n var alert = $mdDialog.alert({\r\n title: \"TD SYNNEX\",\r\n textContent: toastrMessages.errorCompanyRegister,\r\n ok: \"OK\",\r\n });\r\n $mdDialog.show(alert).finally(function () {\r\n $location.path(\"/\");\r\n });\r\n };\r\n\r\n $scope.showModalFileSize = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: \"TD SYNNEX\",\r\n textContent: toastrMessages.errorFileSize,\r\n ok: \"OK\",\r\n });\r\n $mdDialog.show(alert).finally(function () {\r\n alert = undefined;\r\n });\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"my.pages.company-registry\")\r\n .controller(\"CompanyRegistryEquadorCtrl\", CompanyRegistryEquadorCtrl);\r\n\r\n /** @ngInject */\r\n function CompanyRegistryEquadorCtrl(\r\n $scope,\r\n $location,\r\n $rootScope,\r\n $translate,\r\n $anchorScroll,\r\n $mdDialog,\r\n ApplicationResponseAPI,\r\n CompanyAPI,\r\n EnderecoAPI,\r\n filterFilter,\r\n SweetAlertFactory,\r\n $shareholderService, //INTRA-3114\r\n $companyService,\r\n $controller\r\n ) {\r\n \r\n $controller('BaseCompanyRegistryCtrl', {$scope: $scope});\r\n\r\n $scope.NomeFantasiaTranslateKey = \"NomeFantasiaLatam\";\r\n\r\n $scope.EstadoTranslateKey = \"Provincia\";\r\n\r\n $scope.contabilidade = null;\r\n\r\n var codERP = 6;\r\n var countryId = \"STAR_2YCJW_2EB10TF9P\";\r\n var filezSize = 0;\r\n\r\n $scope.codERP = codERP;\r\n\r\n var toastrMessages = {};\r\n function getToastrTranslations() {\r\n toastrMessages = $companyService.getToastrMessages();\r\n }\r\n getToastrTranslations();\r\n $scope.$on('$localeChangeSuccess', getToastrTranslations);\r\n\r\n /**\r\n * ValidaĆ§Ć£o do componente de EndereƧamento;\r\n * @author Raviel Chausse Silveira\r\n * @date 13/11/2017\r\n **/\r\n var resetCountry = function (callback) {\r\n $scope.company.country = null;\r\n typeof callback === \"function\" ? callback() : resetState();\r\n };\r\n var resetState = function (callback) {\r\n $scope.company.state = null;\r\n $scope.states = [];\r\n typeof callback === \"function\" ? callback() : resetCity();\r\n };\r\n var resetCity = function (callback) {\r\n $scope.company.city = null;\r\n $scope.cities = [];\r\n typeof callback === \"function\" ? callback() : null;\r\n };\r\n /** Fim da ValidaĆ§Ć£o **/\r\n\r\n function fillWithPreRegistrationData(callback) {\r\n fillAllContact();\r\n if ($scope.isUpdate) {\r\n var intranetType = $scope.company.intranetType;\r\n delete $rootScope.company.intranetType;\r\n\r\n var tipoJuridico = Number($scope.company.tipoJuridico) || 3;\r\n delete $rootScope.company.tipoJuridico;\r\n\r\n $.extend(true, $scope.company, $rootScope.company);\r\n\r\n if (intranetType > 0)\r\n $scope.company.intranetType = String(intranetType);\r\n if (tipoJuridico > 0)\r\n $scope.company.tipoJuridico = String(tipoJuridico);\r\n } else {\r\n $.extend(true, $scope.company, $rootScope.company);\r\n }\r\n fillWestconVendor();\r\n fillState();\r\n\r\n if (typeof callback === \"function\")\r\n window.setTimeout(callback, 500);\r\n }\r\n\r\n function fillAllContact() {\r\n var keys = [\"contactMain\", \"contactPurchases\", \"contactAccounts\"];\r\n if ($scope.company.contatos && $scope.company.contatos.length > 0) {\r\n for (var i = 0; i < $scope.company.contatos.length; i++) {\r\n if (_.isUndefined($scope.company[keys[i]]))\r\n $scope.company[keys[i]] = {};\r\n _.extend(\r\n ($scope.company[keys[i]] = $scope.company.contatos[i])\r\n );\r\n }\r\n }\r\n $scope.company.userName =\r\n $rootScope.company.contactMain.nomeContato;\r\n $scope.company.userEmail = $rootScope.company.contactMain.email;\r\n $scope.company.contactMain.telefone = $scope.company.telefone;\r\n }\r\n\r\n function fillWestconVendor() {\r\n if (!_.isEmpty($scope.company.ukeyVendedor)) {\r\n var params = {\r\n westconCode: $scope.company.ukeyVendedor.trim(),\r\n };\r\n var vendor = _.find($scope.westconVendors, params);\r\n if (!_.isEmpty(vendor)) {\r\n $scope.company.westconVendor = vendor;\r\n $scope.company.vendedor = vendor.name;\r\n } else if (!_.isEmpty($scope.company.vendedor)) {\r\n $scope.company.westconVendor = filterFilter(\r\n $scope.westconVendors,\r\n { name: $scope.company.vendedor.trim().toUpperCase() }\r\n )[0];\r\n }\r\n } else if (!_.isEmpty($scope.company.vendedor)) {\r\n $scope.company.westconVendor = filterFilter(\r\n $scope.westconVendors,\r\n { name: $scope.company.vendedor.trim().toUpperCase() }\r\n )[0];\r\n }\r\n }\r\n\r\n function fillState() {\r\n if (!_.isEmpty($scope.company.ukeyEstado)) {\r\n var params = { westconCode: $scope.company.ukeyEstado.trim() };\r\n var state = _.find($scope.states, params);\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n $scope.company.estado = state.name;\r\n searchCity(state, fillCity);\r\n } else if (!_.isEmpty($scope.company.estado)) {\r\n params = { name: $scope.company.estado.trim() };\r\n state = _.find($scope.states, params);\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n searchCity(state, fillCity);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function fillCity() {\r\n if (!_.isEmpty($scope.company.ukeyCidade)) {\r\n var params = { westconCode: $scope.company.ukeyCidade.trim() };\r\n var city = _.find($scope.cities, params);\r\n if (!_.isEmpty(city)) {\r\n $scope.company.city = city;\r\n $scope.company.cidade = city.name;\r\n } else if (!_.isEmpty($scope.company.cidade)) {\r\n $scope.company.city = _.find($scope.cities, {\r\n name: $scope.company.cidade.trim(),\r\n });\r\n }\r\n }\r\n }\r\n\r\n var searchState = function (country, callback) {\r\n if (!_.isEmpty(country)) {\r\n var countryId = country.westconCode;\r\n EnderecoAPI.listStates(\r\n { codErp: codERP, countryId: countryId },\r\n function (data) {\r\n $scope.states = data;\r\n typeof callback === \"function\" ? callback() : null;\r\n },\r\n throwException\r\n );\r\n } else {\r\n $scope.company.state = null;\r\n $scope.states = [];\r\n }\r\n };\r\n\r\n var searchCity = function (state, callback) {\r\n if (!_.isEmpty(state)) {\r\n var stateId = state.westconCode;\r\n EnderecoAPI.listCities(\r\n { codErp: codERP, stateId: stateId },\r\n function (data) {\r\n $scope.cities = data;\r\n typeof callback === \"function\" ? callback() : null;\r\n },\r\n throwException\r\n );\r\n } else {\r\n $scope.company.city = null;\r\n $scope.cities = [];\r\n }\r\n };\r\n\r\n var mapCompany = function (company) {\r\n $rootScope.loading = false;\r\n if (_.isEmpty(company.cnpj)) {\r\n $scope.isUpdate = false;\r\n } else {\r\n $scope.isUpdate = true;\r\n _.extend($scope.company, company);\r\n }\r\n fillWithPreRegistrationData(function () {\r\n $(\".radio-tipo-juridico\").attr(\"disabled\", true);\r\n $(\"#tax-id\").attr(\"disabled\", true);\r\n });\r\n };\r\n\r\n $scope.codERP = codERP;\r\n $scope.cities = [];\r\n $scope.countries = [];\r\n $scope.files = [];\r\n $scope.financialClassifications = [];\r\n $scope.isUpdate = false;\r\n $scope.mainContactOnly = false;\r\n $scope.otherFileList = [];\r\n $scope.states = [];\r\n $scope.timeoutID = null;\r\n $scope.typeClients = [];\r\n $scope.westconVendors = [];\r\n $scope.shareholdersQty = 0;\r\n $scope.valueShareholdersQty = [];\r\n $scope.Justificativa = \"\";\r\n\r\n $scope.company =\r\n _.keys($rootScope.company).length > 0\r\n ? _.extend({ codErp: codERP }, $rootScope.company)\r\n : { codErp: codERP };\r\n\r\n ApplicationResponseAPI.GetTipoCliente(\r\n { codErp: codERP },\r\n function (data) {\r\n $scope.typeClients = data;\r\n },\r\n throwException\r\n );\r\n ApplicationResponseAPI.GetClassificacao(\r\n { codErp: codERP },\r\n function (data) {\r\n $scope.financialClassifications = data;\r\n },\r\n throwException\r\n );\r\n CompanyAPI.query(\r\n { codErp: codERP },\r\n function (data) {\r\n $scope.westconVendors = data.sort(function (a, b) {\r\n return a.name.localeCompare(b.name);\r\n });\r\n },\r\n throwException\r\n );\r\n ApplicationResponseAPI.GetCondicaoPagamento(\r\n { codErp: codERP },\r\n function (data) {\r\n $scope.conditionsPayments = data;\r\n },\r\n throwException\r\n );\r\n EnderecoAPI.listStates(\r\n { codErp: codERP, countryId: countryId },\r\n function (data) {\r\n $scope.states = data;\r\n },\r\n throwException\r\n );\r\n\r\n // NOW UPLOAD THE FILES AND THE FORM\r\n $scope.sendCompany = function (form) {\r\n if (fnIsFormValid(form)) {\r\n $rootScope.loading = true;\r\n var xhr = new XMLHttpRequest();\r\n var data = new FormData();\r\n\r\n var valid = true;\r\n\r\n if($scope.shareholdersQty == 0 || $scope.valueShareholdersQty.length == 0) {\r\n SweetAlertFactory.showTranslation('RegisterCompany.ShareholdersQty.Equals0');\r\n $rootScope.loading = false;\r\n return;\r\n }\r\n\r\n if(($scope.company.Justificativa != \"\" || $scope.company.Justificativa != null) && $scope.valueShareholdersQty.length == 0){\r\n $scope.valueShareholdersQty.push({\r\n Percentagem: 10,\r\n Justificativa: $scope.company.Justificativa\r\n });\r\n valid = true;\r\n }\r\n\r\n if(!$scope.checkFilesTotalSize($scope.files.concat($scope.otherFileList))){\r\n SweetAlertFactory.showTranslation('FileSizeLimitExceeded');\r\n $rootScope.loading = false;\r\n return;\r\n }\r\n \r\n if(valid) {\r\n addContacts();\r\n addLocale();\r\n \r\n $scope.company.ukeyPais = countryId;\r\n $scope.company.pais = \"Ecuador\";\r\n $scope.company.condicaoPagamentoArquivo = $scope.condicaoPagamentoArquivo;\r\n $scope.company.Acionista = $scope.valueShareholdersQty;\r\n\r\n if (\r\n $scope.company.contabilidade == 3 ||\r\n $scope.company.contabilidade == 4\r\n ) {\r\n $scope.company.tipoJuridico = $scope.company.contabilidade;\r\n }\r\n \r\n //INTRA-2776\r\n if ($scope.condicaoPagamentoArquivo == \"1\")\r\n $scope.company.CondicaoPagamento = { name: \"Prepaid\" };\r\n else if ($scope.condicaoPagamentoArquivo == \"2\")\r\n $scope.company.CondicaoPagamento = { name: \"Credit Line\" };\r\n \r\n // Upload Form Data;\r\n data.append(\r\n \"company\",\r\n JSON.stringify({ Company: $scope.company })\r\n );\r\n \r\n // Upload of File\r\n $scope.files.forEach(function (f) {\r\n data.append(f.type, f.file);\r\n });\r\n \r\n // Upload of Other File;\r\n if ($scope.otherFileList.length > 0) {\r\n $scope.otherFileList.forEach(function (otherFile) {\r\n data.append(\r\n \"other-file_\" + otherFile.Name,\r\n otherFile.Content\r\n );\r\n });\r\n }\r\n \r\n //INTRA-3114\r\n if (!$shareholderService.ValidatePercentage($scope)){\r\n SweetAlertFactory.showTranslation('RegisterCompany.ValidationCompanyShareholderSum');\r\n $rootScope.loading = false;\r\n valid = false;\r\n }\r\n\r\n // Send Form Data;\r\n xhr.addEventListener(\"load\", transferComplete, false);\r\n xhr.addEventListener(\"error\", $scope.handleHttpError, false);\r\n\r\n if ($scope.isUpdate) {\r\n xhr.open(\"POST\", baseApi + \"company/update\");\r\n } else {\r\n xhr.open(\"POST\", baseApi + \"company/register\");\r\n }\r\n\r\n xhr.send(data);\r\n }\r\n }\r\n };\r\n\r\n function fnIsFormValid(form) {\r\n var valid = false;\r\n\r\n if (form.$invalid) {\r\n $anchorScroll();\r\n var errorTypes = Object.keys(form.$error);\r\n\r\n if (errorTypes.includes(\"required\")) {\r\n var reqFields = {};\r\n var translationKeys = [];\r\n\r\n if (form.condicaoPagamentoArquivo.$error.required)\r\n form.condicaoPagamentoArquivo.$setDirty(true);\r\n form.$error.required.forEach(function (r) {\r\n reqFields[r.$name] = r.$$attr.key;\r\n });\r\n translationKeys = Object.values(reqFields);\r\n\r\n translationKeys.unshift(\r\n \"InvalidForm\",\r\n \"FillRequiredFields\",\r\n \"LF\"\r\n );\r\n SweetAlertFactory.showTranslationLote(translationKeys);\r\n } else if (errorTypes.includes(\"email\")) {\r\n SweetAlertFactory.showTranslation(\"InvalidEmail\");\r\n } else {\r\n SweetAlertFactory.showTranslation(\"InvalidForm\");\r\n }\r\n } else {\r\n var translationKeys = [];\r\n\r\n if ($scope.SingleDocument !== true) {\r\n translationKeys.push(\"SingleDocumentEquador\");\r\n }\r\n if ($scope.CertificateShareholder !== true) {\r\n translationKeys.push(\"CertificateShareholder\");\r\n }\r\n if (\r\n $scope.ChamberOfCommerceAndCertificate !== true &&\r\n $scope.company.tipoJuridico == 2\r\n ) {\r\n translationKeys.push(\r\n \"ChamberOfCommerceAndCertificateEquador\"\r\n );\r\n }\r\n if (\r\n $scope.CertificadoConstituicao !== true &&\r\n $scope.company.tipoJuridico == 2\r\n ) {\r\n translationKeys.push(\"CertificadoConstituicao\");\r\n }\r\n if ($scope.CommercialReferences !== true) {\r\n translationKeys.push(\"CommercialsReferences\");\r\n }\r\n if ($scope.BankingCommercialsReferences !== true) {\r\n translationKeys.push(\"BankingReferences\");\r\n }\r\n \r\n if ($scope.BankStatements !== true) {\r\n translationKeys.push(\"BankStatements\");\r\n }\r\n if (\r\n $scope.FinancialStatementsLastYear !== true &&\r\n $scope.company.tipoJuridico == 2\r\n ) {\r\n translationKeys.push(\"FinancialStatementsLastYearEquador\");\r\n }\r\n if ($scope.DeclaracaoImposto !== true) {\r\n translationKeys.push(\"DeclaracaoImposto\");\r\n }\r\n if ($scope.SRI !== true) {\r\n translationKeys.push(\"SRI\");\r\n }\r\n\r\n if (translationKeys.length > 0) {\r\n $anchorScroll();\r\n translationKeys.unshift(\r\n \"InvalidForm\",\r\n \"AttachRequiredFiles\",\r\n \"LF\"\r\n );\r\n SweetAlertFactory.showTranslationLote(translationKeys);\r\n } else {\r\n valid = true;\r\n }\r\n }\r\n\r\n return valid;\r\n }\r\n\r\n function transferComplete(evt) {\r\n $rootScope.loading = false;\r\n if (evt.target.status == 200) {\r\n if (evt.target.response) {\r\n var response = JSON.parse(evt.target.response);\r\n if (response.sucesso) {\r\n $scope.showModalSucesso();\r\n } else {\r\n $scope.showModalError();\r\n }\r\n } else {\r\n $scope.showModalSucesso();\r\n }\r\n } else {\r\n $scope.handleHttpError(evt);\r\n }\r\n }\r\n\r\n $scope.selectVendor = function (vendor) {\r\n $companyService.selectVendor($scope.company, vendor)\r\n };\r\n\r\n $scope.selectCountry = function (country) {\r\n if (!_.isEmpty(country)) {\r\n $scope.company.country = country;\r\n $scope.company.ukeyPais = country.westconCode;\r\n $scope.company.pais = country.name;\r\n searchState(country);\r\n } else {\r\n resetState();\r\n }\r\n };\r\n\r\n $scope.selectState = function (state) {\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n $scope.company.ukeyEstado = state.westconCode;\r\n $scope.company.estado = state.name;\r\n searchCity(state);\r\n } else {\r\n resetCity();\r\n }\r\n };\r\n\r\n $scope.selectCity = function (city) {\r\n $companyService.selectCity($scope.company, city);\r\n };\r\n\r\n $scope.selectTypeClients = function (client) {\r\n $scope.company.TipoDeClienteFornecedor = client;\r\n };\r\n $scope.selectConditionPayment = function (conditionPayment) {\r\n $scope.company.CondicaoPagamento = conditionPayment;\r\n };\r\n //$scope.listCountries = function (query) { return filterFilter($scope.countries, { name: query }) };\r\n $scope.queryWestconVendors = function (query) {\r\n return filterFilter($scope.westconVendors, { name: query });\r\n };\r\n $scope.queryState = function (query) {\r\n return filterFilter($scope.states, { name: query });\r\n };\r\n $scope.queryCity = function (query) {\r\n return filterFilter($scope.cities, { name: query });\r\n };\r\n $scope.queryTypeClients = function (query) {\r\n return filterFilter($scope.typeClients, { name: query });\r\n };\r\n $scope.queryConditionsPayments = function (query) {\r\n return filterFilter($scope.conditionsPayments, { name: query });\r\n };\r\n\r\n function addContactPurchases(key) {\r\n if (!key) key = \"contactPurchases\";\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: false,\r\n receiveNFeXML: false,\r\n tipo: \"Responsable para recepciĆ³n de facturas electrĆ³nicas (asociado con la SRI)\",\r\n });\r\n }\r\n\r\n function addContactAccounts(key) {\r\n if (!key) key = \"contactAccounts\";\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: false,\r\n receiveNFeXML: false,\r\n tipo: \"contas\",\r\n });\r\n }\r\n\r\n function addContacts() {\r\n $scope.company.userName = $scope.company.contactMain.nomeContato;\r\n $scope.company.userEmail = $scope.company.contactMain.email;\r\n\r\n $scope.company.contatos = [\r\n {\r\n nomeContato: $scope.company.contactMain.nomeContato,\r\n telefone: $scope.company.contactMain.telefone,\r\n email: $scope.company.contactMain.email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: true,\r\n receiveNFeXML: true,\r\n tipo: \"principal\",\r\n },\r\n ];\r\n\r\n if ($scope.mainContactOnly) {\r\n delete $scope.company.contactPurchases;\r\n delete $scope.company.contactAccounts;\r\n\r\n addContactPurchases(\"contactMain\");\r\n addContactAccounts(\"contactMain\");\r\n } else {\r\n addContactPurchases();\r\n addContactAccounts();\r\n }\r\n\r\n }\r\n\r\n function addLocale() {\r\n $scope.company.locale = $translate.use();\r\n }\r\n\r\n function getDays(callback) {\r\n $scope.days = [];\r\n for (var i = 1; i < 32; i++) {\r\n $scope.days.push(i);\r\n }\r\n if (typeof callback === \"function\") {\r\n callback();\r\n }\r\n }\r\n\r\n if (\r\n _.isEmpty($rootScope.company) ||\r\n _.isEmpty($rootScope.company.cnpj)\r\n ) {\r\n document.location.href =\r\n $rootScope.sanitizeUrl(document.location.origin) + \"/#!/company-registry/new\";\r\n } else {\r\n $rootScope.loading = true;\r\n getDays(function () {\r\n CompanyAPI.getCompany(\r\n { codErp: codERP, code: $rootScope.company.cnpj },\r\n mapCompany,\r\n throwException\r\n );\r\n });\r\n }\r\n\r\n /* INNO-1359 Inicio */\r\n $scope.showModalSucesso = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: \"TD SYNNEX\",\r\n textContent: toastrMessages.success,\r\n ok: \"OK\",\r\n });\r\n $mdDialog.show(alert).finally(function () {\r\n $location.path(\"/\");\r\n });\r\n };\r\n $scope.showModalError = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: \"TD SYNNEX\",\r\n textContent: toastrMessages.errorCompanyRegister,\r\n ok: \"OK\",\r\n });\r\n $mdDialog.show(alert).finally(function () {\r\n alert = undefined;\r\n });\r\n };\r\n\r\n $scope.showModalInvalidFile = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: 'TD SYNNEX',\r\n textContent: toastrMessages.errorInvalidFile,\r\n ok: 'OK'\r\n });\r\n $mdDialog\r\n .show(alert)\r\n .finally(function () {\r\n alert = undefined;\r\n });\r\n };\r\n\r\n $scope.showModalFileSize = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: \"TD SYNNEX\",\r\n textContent: toastrMessages.errorFileSize,\r\n ok: \"OK\",\r\n });\r\n $mdDialog.show(alert).finally(function () {\r\n alert = undefined;\r\n });\r\n };\r\n\r\n function throwException(error) {\r\n $rootScope.loading = false;\r\n if (\r\n error.target &&\r\n error.target.response.includes(\r\n \"O mĆ³dulo de filtragem de solicitaĆ§Ć£o estĆ” configurado para negar uma solicitaĆ§Ć£o que exceda o tamanho de conteĆŗdo solicitado\"\r\n )\r\n ) {\r\n $scope.showModalFileSize();\r\n }\r\n if (error.target && error.target.response.includes(\"File Extension not allowed\")) {\r\n $scope.showModalInvalidFile();\r\n }\r\n else {\r\n console.error(error);\r\n $scope.showModalError();\r\n }\r\n }\r\n\r\n //INTRA-3114\r\n $scope.UpdateAcionista = function (vm) {\r\n $shareholderService.Update ($scope, vm)\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.company-registry')\r\n .controller('CompanyRegistryMexicoCtrl', CompanyRegistryMexicoCtrl);\r\n\r\n /** @ngInject */\r\n function CompanyRegistryMexicoCtrl (\r\n $rootScope,\r\n $scope,\r\n $anchorScroll,\r\n $helper,\r\n $location,\r\n $mdDialog,\r\n $translate,\r\n ApplicationResponseAPI,\r\n CompanyAPI,\r\n EnderecoAPI,\r\n filterFilter,\r\n SweetAlertFactory,\r\n $companyService\r\n ) {\r\n\r\n $scope.NomeFantasiaTranslateKey = 'NomeFantasiaLatam';\r\n $scope.EstadoTranslateKey = 'EstadoLatam';\r\n $scope.BairroTranslateKey = 'BairroLatam';\r\n\r\n var codErp = 3;\r\n var term = '';\r\n\r\n var toastrMessages = {};\r\n function getToastrTranslations() {\r\n toastrMessages = $companyService.getToastrMessages();\r\n }\r\n getToastrTranslations();\r\n $scope.$on('$localeChangeSuccess', getToastrTranslations);\r\n\r\n /**\r\n * ValidaĆ§Ć£o do componente de EndereƧamento;\r\n * @author Raviel Chausse Silveira\r\n * @date 13/11/2017\r\n **/\r\n var resetCountry = function (callback) {\r\n $scope.company.country = null;\r\n typeof callback === 'function' ? callback() : resetState();\r\n };\r\n var resetState = function (callback) {\r\n $scope.company.state = null;\r\n $scope.states = [];\r\n typeof callback === 'function' ? callback() : resetCity();\r\n };\r\n var resetCity = function (callback) {\r\n $scope.company.city = null;\r\n $scope.cities = [];\r\n typeof callback === 'function' ? callback() : null;\r\n };\r\n /** Fim da ValidaĆ§Ć£o **/\r\n\r\n var fillWithPreRegistrationData = function () {\r\n fillAllContact();\r\n if ($scope.isUpdate) {\r\n var intranet = $scope.company.intranetType\r\n delete $rootScope.company.intranetType;\r\n $.extend(true, $scope.company, $rootScope.company);\r\n\r\n if (intranet > 0) $scope.company.intranetType = String(intranet);\r\n }\r\n else $.extend(true, $scope.company, $rootScope.company);\r\n fillWestconVendor();\r\n fillCountry();\r\n };\r\n\r\n var fillAllContact = function () {\r\n var keys = [\"contactMain\", \"contactNFe\", \"contactPurchases\", \"contactAccounts\"];\r\n if ($scope.company.contatos && $scope.company.contatos.length > 0) {\r\n for (var i = 0; i < $scope.company.contatos.length; i++) {\r\n if (_.isUndefined($scope.company[keys[i]])) $scope.company[keys[i]] = {};\r\n _.extend($scope.company[keys[i]] = $scope.company.contatos[i]);\r\n }\r\n }\r\n $scope.company.userName = $rootScope.company.contactMain.nomeContato;\r\n $scope.company.userEmail = $rootScope.company.contactMain.email;\r\n $scope.company.contactMain.telefone = $scope.company.telefone;\r\n };\r\n\r\n var fillWestconVendor = function () {\r\n if (!_.isEmpty($scope.company.ukeyVendedor)) {\r\n var params = { westconCode: $scope.company.ukeyVendedor.trim() };\r\n var vendor = _.find($scope.westconVendors, params);\r\n if (!_.isEmpty(vendor)) {\r\n $scope.company.westconVendor = vendor;\r\n $scope.company.vendedor = vendor.name;\r\n } else if (!_.isEmpty($scope.company.vendedor)) {\r\n $scope.company.westconVendor = filterFilter($scope.westconVendors, { name: $scope.company.vendedor.trim().toUpperCase() })[0];\r\n }\r\n } else if (!_.isEmpty($scope.company.vendedor)) {\r\n $scope.company.westconVendor = filterFilter($scope.westconVendors, { name: $scope.company.vendedor.trim().toUpperCase() })[0];\r\n }\r\n };\r\n\r\n var fillCountry = function () {\r\n if (!_.isEmpty($scope.company.ukeyPais)) {\r\n var params = { westconCode: $scope.company.ukeyPais.trim() };\r\n var country = _.find($scope.countries, params);\r\n if (!_.isEmpty(country)) {\r\n $scope.company.country = country;\r\n $scope.company.pais = country.name;\r\n searchState(country, fillState);\r\n }\r\n }\r\n };\r\n\r\n var fillState = function () {\r\n if (!_.isEmpty($scope.company.ukeyEstado)) {\r\n var params = { westconCode: $scope.company.ukeyEstado.trim() };\r\n var state = _.find($scope.states, params);\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n $scope.company.estado = state.name;\r\n searchCity(state, fillCity);\r\n } else if (!_.isEmpty($scope.company.estado)) {\r\n params = { name: $scope.company.estado.trim() };\r\n state = _.find($scope.states, params);\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n searchCity(state, fillCity);\r\n }\r\n }\r\n }\r\n };\r\n\r\n var fillCity = function () {\r\n if (!_.isEmpty($scope.company.ukeyCidade)) {\r\n var params = { westconCode: $scope.company.ukeyCidade.trim() };\r\n var city = _.find($scope.cities, params);\r\n if (!_.isEmpty(city)) {\r\n $scope.company.city = city;\r\n $scope.company.cidade = city.name;\r\n } else if (!_.isEmpty($scope.company.cidade)) {\r\n $scope.company.city = _.find($scope.cities, { name: $scope.company.cidade.trim() });\r\n }\r\n }\r\n };\r\n\r\n var searchState = function (country, callback) {\r\n if (!_.isEmpty(country)) {\r\n var countryId = country.westconCode;\r\n EnderecoAPI.listStates({ codErp: codErp, countryId: countryId }, function (data) {\r\n $scope.states = data;\r\n typeof callback === 'function' ? callback() : null;\r\n }, $helper.throwException);\r\n } else {\r\n $scope.company.state = null;\r\n $scope.states = [];\r\n }\r\n };\r\n\r\n var searchCity = function (state, callback) {\r\n if (!_.isEmpty(state)) {\r\n var stateId = state.westconCode;\r\n EnderecoAPI.listCities({ codErp: codErp, stateId: stateId }, function (data) {\r\n $scope.cities = data;\r\n typeof callback === 'function' ? callback() : null;\r\n }, $helper.throwException);\r\n } else {\r\n $scope.company.city = null;\r\n $scope.cities = [];\r\n }\r\n };\r\n\r\n var fillDiaNFe = function () {\r\n if ($scope.company.diaLimiteEmissaoNfe > 0) {\r\n $scope.company.prazoNfe = '1';\r\n } else {\r\n $scope.company.prazoNfe = '0';\r\n }\r\n };\r\n\r\n var mapCompany = function (company) {\r\n $rootScope.loading = false;\r\n if (_.isEmpty(company.cnpj)) {\r\n $scope.isUpdate = false;\r\n } else {\r\n $scope.isUpdate = true;\r\n _.extend($scope.company, company);\r\n }\r\n fillWithPreRegistrationData();\r\n fillDiaNFe();\r\n };\r\n\r\n $scope.codERP = codErp;\r\n $scope.cities = [];\r\n $scope.company = {};\r\n $scope.countries = [];\r\n $scope.files = [];\r\n $scope.financialClassifications = [];\r\n $scope.isUpdate = false;\r\n $scope.mainContactOnly = false;\r\n $scope.otherFileList = [];\r\n $scope.states = [];\r\n $scope.timeoutID = null;\r\n $scope.typeClients = [];\r\n $scope.westconVendors = [];\r\n\r\n $scope.company = (_.keys($rootScope.company).length > 0) ? _.extend({ codErp: codErp }, $rootScope.company) : { codErp: codErp };\r\n\r\n ApplicationResponseAPI.GetTipoCliente({ codErp: codErp }, function (data) { $scope.typeClients = data }, $helper.throwException);\r\n ApplicationResponseAPI.GetClassificacao({ codErp: codErp }, function (data) { $scope.financialClassifications = data }, $helper.throwException);\r\n CompanyAPI.query({ codErp: codErp }, function (data) { $scope.westconVendors = data.sort(function (a,b) { return a.name.localeCompare(b.name) }) }, $helper.throwException);\r\n ApplicationResponseAPI.GetCondicaoPagamento({ codErp: codErp }, function (data) { $scope.conditionsPayments = data }, $helper.throwException);\r\n EnderecoAPI.listCountries({ codErp: codErp, term: term }, function (data) { $scope.countries = data }, $helper.throwException);\r\n\r\n $scope.getFileDetails = function (e, type) {\r\n if(e.files.length){\r\n $scope[type] = true;\r\n }\r\n else {\r\n $scope[type] = false;\r\n }\r\n\r\n $scope.$apply(function () {\r\n // Remove existing files of the same type\r\n $scope.files = $scope.files.filter(function(file) {\r\n return file.type !== type;\r\n });\r\n\r\n // Add new files\r\n for (var i = 0; i < e.files.length; i++) {\r\n $scope.files.push({ type: type, file: e.files[i] });\r\n }\r\n });\r\n };\r\n\r\n $scope.removeOtherFile = function (key) {\r\n $scope.otherFileList = $scope.otherFileList.filter(function (value) { return value.key != key });\r\n };\r\n\r\n $scope.pushOtherFiles = function (elementHTML) {\r\n if ($scope.otherFiles) {\r\n $scope.$apply(function () {\r\n for (var i = 0; i < elementHTML.files.length; i++) {\r\n $scope.otherFileList.push({\r\n Name: $scope.otherFiles,\r\n Content: elementHTML.files.item(i) ,\r\n key: new Date().getTime()\r\n });\r\n }\r\n $scope.otherFiles = \"\";\r\n });\r\n } else {\r\n SweetAlertFactory.showTranslation('RegisterCompany.FileError'); \r\n }\r\n angular.element(elementHTML).val(null);\r\n };\r\n\r\n // NOW UPLOAD THE FILES AND THE FORM\r\n $scope.sendCompany = function (form) {\r\n if (fnIsFormValid(form)) {\r\n $rootScope.loading = true;\r\n var xhr = new XMLHttpRequest();\r\n var data = new FormData();\r\n\r\n addContacts();\r\n addLocale();\r\n\r\n // Upload Form Data;\r\n data.append('company', JSON.stringify({ Company: $scope.company }));\r\n\r\n // Upload of File\r\n $scope.files.forEach(function (f) { data.append(f.type, f.file) });\r\n\r\n // Upload of Other File;\r\n if ($scope.otherFileList.length > 0) {\r\n $scope.otherFileList.forEach(function (otherFile) { data.append('other-file_' + otherFile.Name, otherFile.Content) });\r\n }\r\n\r\n // Send Form Data;\r\n xhr.addEventListener(\"load\", transferComplete, false);\r\n xhr.addEventListener(\"error\", $helper.throwException, false);\r\n\r\n if ($scope.isUpdate) {\r\n xhr.open(\"POST\", baseApi + 'company/update');\r\n } else {\r\n xhr.open(\"POST\", baseApi + 'company/register');\r\n }\r\n\r\n xhr.send(data);\r\n }\r\n }\r\n\r\n function fnIsFormValid (form) {\r\n var valid = false;\r\n \r\n if (form.$invalid) {\r\n $anchorScroll();\r\n var errorTypes = Object.keys(form.$error);\r\n\r\n if (errorTypes.includes('required')) {\r\n var reqFields = {};\r\n var translationKeys = [];\r\n\r\n form.$error.required.forEach(function(r){reqFields[r.$name] = r.$$attr.key;});\r\n translationKeys = Object.values(reqFields);\r\n\r\n translationKeys.unshift('InvalidForm', 'FillRequiredFields', 'LF');\r\n SweetAlertFactory.showTranslationLote(translationKeys);\r\n\r\n\r\n } else if (errorTypes.includes('email') ) {\r\n SweetAlertFactory.showTranslation('InvalidEmail');\r\n\r\n } else {\r\n SweetAlertFactory.showTranslation('InvalidForm');\r\n\r\n }\r\n\r\n } else {\r\n valid = true;\r\n\r\n }\r\n\r\n return valid;\r\n }\r\n\r\n function transferComplete (evt) {\r\n $rootScope.loading = false;\r\n if (evt.target.status == 200) {\r\n if (evt.target.response) {\r\n var response = JSON.parse(evt.target.response);\r\n if (response.sucesso) {\r\n $scope.showModalSucesso();\r\n } else {\r\n $scope.showModalError();\r\n }\r\n } else {\r\n $scope.showModalSucesso();\r\n }\r\n } else {\r\n $helper.throwException(evt);\r\n }\r\n }\r\n\r\n $scope.selectVendor = function (vendor) {\r\n $companyService.selectVendor($scope.company, vendor)\r\n }\r\n\r\n $scope.selectCountry = function (country) {\r\n if (!_.isEmpty(country)) {\r\n $scope.company.country = country;\r\n $scope.company.ukeyPais = country.westconCode;\r\n $scope.company.pais = country.name;\r\n searchState(country);\r\n } else {\r\n resetState();\r\n }\r\n }\r\n\r\n $scope.selectState = function (state) {\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n $scope.company.ukeyEstado = state.westconCode;\r\n $scope.company.estado = state.name;\r\n searchCity(state);\r\n } else {\r\n resetCity();\r\n }\r\n }\r\n\r\n $scope.selectCity = function (city) {\r\n $companyService.selectCity($scope.company, city);\r\n }\r\n\r\n $scope.selectTypeClients = function (client) { $scope.company.TipoDeClienteFornecedor = client };\r\n $scope.selectConditionPayment = function (conditionPayment) { $scope.company.CondicaoPagamento = conditionPayment };\r\n $scope.listCountries = function (query) { return filterFilter($scope.countries, { name: query }) };\r\n $scope.queryWestconVendors = function (query) { return filterFilter($scope.westconVendors, { name: query }) };\r\n $scope.queryState = function (query) { return filterFilter($scope.states, { name: query }) };\r\n $scope.queryCity = function (query) { return filterFilter($scope.cities, { name: query }) };\r\n $scope.queryTypeClients = function (query) { return filterFilter($scope.typeClients, { name: query }) };\r\n $scope.queryConditionsPayments = function (query) { return filterFilter($scope.conditionsPayments, { name: query }) };\r\n\r\n function addContactNFe (key) {\r\n if (!key) key = 'contactNFe';\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: false,\r\n receiveNFe: true,\r\n receiveNFeXML: true,\r\n tipo: 'nfe'\r\n });\r\n }\r\n\r\n function addContactPurchases (key) {\r\n if (!key) key = 'contactPurchases';\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: false,\r\n receiveNFeXML: false,\r\n tipo: 'compras'\r\n });\r\n }\r\n\r\n function addContactAccounts (key) {\r\n if (!key) key = 'contactAccounts';\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: false,\r\n receiveNFeXML: false,\r\n tipo: 'contas'\r\n });\r\n }\r\n\r\n function addContacts() {\r\n\r\n $scope.company.userName = $scope.company.contactMain.nomeContato;\r\n $scope.company.userEmail = $scope.company.contactMain.email;\r\n\r\n $scope.company.contatos = [{\r\n nomeContato: $scope.company.contactMain.nomeContato,\r\n telefone: $scope.company.contactMain.telefone,\r\n email: $scope.company.contactMain.email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: true,\r\n receiveNFeXML: true,\r\n tipo: 'principal'\r\n }];\r\n\r\n if ($scope.mainContactOnly) {\r\n addContactNFe('contactMain');\r\n addContactPurchases('contactMain');\r\n addContactAccounts('contactMain');\r\n } else {\r\n addContactNFe();\r\n addContactPurchases();\r\n addContactAccounts();\r\n }\r\n\r\n delete $scope.company.contactNFe;\r\n delete $scope.company.contactPurchases;\r\n delete $scope.company.contactAccounts;\r\n }\r\n\r\n function addLocale() {\r\n $scope.company.locale = $translate.use();\r\n }\r\n\r\n function getDays(callback) {\r\n $scope.days = [];\r\n for (var i = 1; i < 32; i++) {\r\n $scope.days.push(i);\r\n }\r\n if (typeof callback === 'function') {\r\n callback();\r\n }\r\n }\r\n\r\n if (_.isEmpty($rootScope.company) || _.isEmpty($rootScope.company.cnpj)) {\r\n document.location.href = $rootScope.sanitizeUrl(document.location.origin) + '/#!/company-registry/new';\r\n } else {\r\n $rootScope.loading = true;\r\n getDays(function () {\r\n CompanyAPI.getCompany({ codErp: codErp, code: $rootScope.company.cnpj }, mapCompany, $helper.throwException);\r\n });\r\n }\r\n\r\n /* INNO-1359 Inicio */\r\n $scope.showModalSucesso = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: 'TD SYNNEX',\r\n textContent: toastrMessages.success,\r\n ok: 'OK'\r\n });\r\n $mdDialog\r\n .show( alert )\r\n .finally(function () {\r\n $location.path(\"/\");\r\n });\r\n };\r\n $scope.showModalError = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: 'TD SYNNEX',\r\n textContent: toastrMessages.errorCompanyRegister,\r\n ok: 'OK'\r\n });\r\n $mdDialog\r\n .show( alert )\r\n .finally(function () {\r\n alert = undefined;\r\n });\r\n };\r\n \r\n $scope.showModalFileSize = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: 'TD SYNNEX',\r\n textContent: toastrMessages.errorFileSize,\r\n ok: 'OK'\r\n });\r\n $mdDialog\r\n .show( alert )\r\n .finally(function () {\r\n alert = undefined;\r\n });\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.company-registry')\r\n .controller('CompanyRegistryPeruCtrl', CompanyRegistryPeruCtrl);\r\n\r\n /** @ngInject */\r\n function CompanyRegistryPeruCtrl(\r\n $scope,\r\n $location,\r\n $rootScope,\r\n $translate,\r\n $anchorScroll,\r\n $mdDialog,\r\n ApplicationResponseAPI,\r\n CompanyAPI,\r\n EnderecoAPI,\r\n filterFilter,\r\n SweetAlertFactory,\r\n $shareholderService, //INTRA-3114\r\n $companyService,\r\n $controller\r\n ) {\r\n \r\n $controller('BaseCompanyRegistryCtrl', {$scope: $scope});\r\n $scope.NomeFantasiaTranslateKey = 'NomeFantasiaLatam';\r\n\r\n $scope.BairroTranslateKey = 'BairroPeru';\r\n\r\n var codERP = 5;\r\n var countryId = \"STAR_2OMUI_29S14TC2X\";\r\n var filezSize = 0;\r\n\r\n var toastrMessages = {};\r\n function getToastrTranslations() {\r\n toastrMessages = $companyService.getToastrMessages();\r\n }\r\n getToastrTranslations();\r\n $scope.$on('$localeChangeSuccess', getToastrTranslations);\r\n\r\n /**\r\n * ValidaĆ§Ć£o do componente de EndereƧamento;\r\n * @author Raviel Chausse Silveira\r\n * @date 13/11/2017\r\n **/\r\n var resetCountry = function (callback) {\r\n $scope.company.country = null;\r\n typeof callback === 'function' ? callback() : resetState();\r\n };\r\n var resetState = function (callback) {\r\n $scope.company.state = null;\r\n $scope.states = [];\r\n typeof callback === 'function' ? callback() : resetCity();\r\n };\r\n var resetCity = function (callback) {\r\n $scope.company.city = null;\r\n $scope.cities = [];\r\n typeof callback === 'function' ? callback() : null;\r\n };\r\n /** Fim da ValidaĆ§Ć£o **/\r\n\r\n function fillWithPreRegistrationData(callback) {\r\n fillAllContact();\r\n if ($scope.isUpdate) {\r\n\r\n var intranetType = $scope.company.intranetType;\r\n delete $rootScope.company.intranetType;\r\n\r\n var tipoJuridico = Number($scope.company.tipoJuridico) || 3;\r\n delete $rootScope.company.tipoJuridico;\r\n\r\n $.extend(true, $scope.company, $rootScope.company);\r\n\r\n if (intranetType > 0) $scope.company.intranetType = String(intranetType);\r\n if (tipoJuridico > 0) $scope.company.tipoJuridico = String(tipoJuridico);\r\n\r\n } else {\r\n\r\n $.extend(true, $scope.company, $rootScope.company);\r\n\r\n }\r\n fillWestconVendor();\r\n fillState();\r\n\r\n if (typeof callback === 'function') window.setTimeout(callback, 500);\r\n };\r\n\r\n function fillAllContact() {\r\n var keys = [\"contactMain\", \"contactNFe\", \"contactPurchases\", \"contactAccounts\"];\r\n if ($scope.company.contatos && $scope.company.contatos.length > 0) {\r\n for (var i = 0; i < $scope.company.contatos.length; i++) {\r\n if (_.isUndefined($scope.company[keys[i]])) $scope.company[keys[i]] = {};\r\n _.extend($scope.company[keys[i]] = $scope.company.contatos[i]);\r\n }\r\n }\r\n $scope.company.userName = $rootScope.company.contactMain.nomeContato;\r\n $scope.company.userEmail = $rootScope.company.contactMain.email;\r\n $scope.company.contactMain.telefone = $scope.company.telefone;\r\n };\r\n\r\n function fillWestconVendor() {\r\n if (!_.isEmpty($scope.company.ukeyVendedor)) {\r\n var params = { westconCode: $scope.company.ukeyVendedor.trim() };\r\n var vendor = _.find($scope.westconVendors, params);\r\n if (!_.isEmpty(vendor)) {\r\n $scope.company.westconVendor = vendor;\r\n $scope.company.vendedor = vendor.name;\r\n } else if (!_.isEmpty($scope.company.vendedor)) {\r\n $scope.company.westconVendor = filterFilter($scope.westconVendors, { name: $scope.company.vendedor.trim().toUpperCase() })[0];\r\n }\r\n } else if (!_.isEmpty($scope.company.vendedor)) {\r\n $scope.company.westconVendor = filterFilter($scope.westconVendors, { name: $scope.company.vendedor.trim().toUpperCase() })[0];\r\n }\r\n };\r\n\r\n function fillState() {\r\n if (!_.isEmpty($scope.company.ukeyEstado)) {\r\n var params = { westconCode: $scope.company.ukeyEstado.trim() };\r\n var state = _.find($scope.states, params);\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n $scope.company.estado = state.name;\r\n searchCity(state, fillCity);\r\n } else if (!_.isEmpty($scope.company.estado)) {\r\n params = { name: $scope.company.estado.trim() };\r\n state = _.find($scope.states, params);\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n searchCity(state, fillCity);\r\n }\r\n }\r\n }\r\n };\r\n\r\n function fillCity() {\r\n if (!_.isEmpty($scope.company.ukeyCidade)) {\r\n var params = { westconCode: $scope.company.ukeyCidade.trim() };\r\n var city = _.find($scope.cities, params);\r\n if (!_.isEmpty(city)) {\r\n $scope.company.city = city;\r\n $scope.company.cidade = city.name;\r\n } else if (!_.isEmpty($scope.company.cidade)) {\r\n $scope.company.city = _.find($scope.cities, { name: $scope.company.cidade.trim() });\r\n }\r\n }\r\n };\r\n\r\n var searchState = function (country, callback) {\r\n if (!_.isEmpty(country)) {\r\n var countryId = country.westconCode;\r\n EnderecoAPI.listStates({ codErp: codERP, countryId: countryId }, function (data) {\r\n $scope.states = data;\r\n typeof callback === 'function' ? callback() : null;\r\n }, $scope.handleHttpError);\r\n } else {\r\n $scope.company.state = null;\r\n $scope.states = [];\r\n }\r\n };\r\n\r\n var searchCity = function (state, callback) {\r\n if (!_.isEmpty(state)) {\r\n var stateId = state.westconCode;\r\n EnderecoAPI.listCities({ codErp: codERP, stateId: stateId }, function (data) {\r\n $scope.cities = data;\r\n typeof callback === 'function' ? callback() : null;\r\n }, $scope.handleHttpError);\r\n } else {\r\n $scope.company.city = null;\r\n $scope.cities = [];\r\n }\r\n };\r\n\r\n var mapCompany = function (company) {\r\n $rootScope.loading = false;\r\n if (_.isEmpty(company.cnpj) || company.status == 'Nova empresa') {\r\n $scope.isUpdate = false;\r\n _.extend($scope.company, company);\r\n } else {\r\n $scope.isUpdate = true;\r\n _.extend($scope.company, company);\r\n }\r\n fillWithPreRegistrationData(function () {\r\n $('.radio-tipo-juridico').attr('disabled', true);\r\n $('#tax-id').attr('disabled', true);\r\n });\r\n };\r\n\r\n $scope.codERP = codERP;\r\n $scope.cities = [];\r\n $scope.countries = [];\r\n $scope.files = [];\r\n $scope.financialClassifications = [];\r\n $scope.isUpdate = false;\r\n $scope.mainContactOnly = false;\r\n $scope.otherFileList = [];\r\n $scope.states = [];\r\n $scope.timeoutID = null;\r\n $scope.typeClients = [];\r\n $scope.westconVendors = [];\r\n $scope.shareholdersQty = 0; //INTRA-3114\r\n $scope.valueShareholdersQty = []; //INTRA-3114\r\n $scope.Justificativa = \"\";\r\n\r\n $scope.company = (_.keys($rootScope.company).length > 0) ? _.extend({ codErp: codERP }, $rootScope.company) : { codErp: codERP };\r\n\r\n ApplicationResponseAPI.GetTipoCliente({ codErp: codERP }, function (data) { $scope.typeClients = data }, $scope.handleHttpError);\r\n ApplicationResponseAPI.GetClassificacao({ codErp: codERP }, function (data) { $scope.financialClassifications = data }, $scope.handleHttpError);\r\n CompanyAPI.query({ codErp: codERP }, function (data) { $scope.westconVendors = data.sort(function (a,b) { return a.name.localeCompare(b.name) }) }, $scope.handleHttpError);\r\n ApplicationResponseAPI.GetCondicaoPagamento({ codErp: codERP }, function (data) { $scope.conditionsPayments = data }, $scope.handleHttpError);\r\n EnderecoAPI.listStates({ codErp: codERP, countryId: countryId }, function (data) { $scope.states = data }, $scope.handleHttpError);\r\n\r\n // NOW UPLOAD THE FILES AND THE FORM\r\n $scope.sendCompany = function (form) {\r\n if (fnIsFormValid(form)) {\r\n $rootScope.loading = true;\r\n var xhr = new XMLHttpRequest();\r\n var data = new FormData();\r\n\r\n var valid = true;\r\n if (($scope.company.Justificativa == \"\" || $scope.company.Justificativa == null) && $scope.valueShareholdersQty.length == 0) {\r\n SweetAlertFactory.showTranslation('RegisterCompany.Justification');\r\n $rootScope.loading = false;\r\n return;\r\n }\r\n else if(($scope.company.Justificativa != \"\" || $scope.company.Justificativa != null) && $scope.valueShareholdersQty.length == 0){\r\n $scope.valueShareholdersQty.push({\r\n Percentagem: 10,\r\n Justificativa: $scope.company.Justificativa\r\n });\r\n valid = true;\r\n }\r\n\r\n if(!$scope.checkFilesTotalSize($scope.files.concat($scope.otherFileList))){\r\n SweetAlertFactory.showTranslation('FileSizeLimitExceeded');\r\n $rootScope.loading = false;\r\n return;\r\n }\r\n\r\n if(valid) {\r\n addContacts();\r\n addLocale();\r\n \r\n $scope.company.ukeyPais = \"STAR_2OMUI_29S14TC2X\";\r\n $scope.company.pais = \"Peru\";\r\n $scope.company.condicaoPagamentoArquivo = $scope.condicaoPagamentoArquivo;\r\n \r\n $scope.company.Acionista = $scope.valueShareholdersQty; //INTRA-3114\r\n\r\n //INTRA-2776\r\n if ($scope.condicaoPagamentoArquivo == '1') $scope.company.CondicaoPagamento = { name: \"Prepaid\" };\r\n else if ($scope.condicaoPagamentoArquivo == '2') $scope.company.CondicaoPagamento = { name: \"Credit Line\" };\r\n \r\n // Upload Form Data;\r\n data.append('company', JSON.stringify({ Company: $scope.company }));\r\n \r\n // Upload of File\r\n $scope.files.forEach(function (f) { data.append(f.type, f.file) });\r\n \r\n // Upload of Other File;\r\n if ($scope.otherFileList.length > 0) {\r\n $scope.otherFileList.forEach(function (otherFile) { data.append('other-file_' + otherFile.Name, otherFile.Content) });\r\n }\r\n \r\n //INTRA-3114\r\n if (!$shareholderService.ValidatePercentage($scope)){\r\n SweetAlertFactory.showTranslation('RegisterCompany.ValidationCompanyShareholderSum');\r\n $rootScope.loading = false;\r\n valid = false;\r\n }\r\n\r\n // Send Form Data;\r\n xhr.addEventListener(\"load\", transferComplete, false);\r\n xhr.addEventListener(\"error\", $scope.handleHttpError, false);\r\n \r\n if ($scope.isUpdate) {\r\n xhr.open(\"POST\", baseApi + 'company/update');\r\n } else {\r\n xhr.open(\"POST\", baseApi + 'company/register');\r\n }\r\n \r\n xhr.send(data);\r\n }\r\n }\r\n }\r\n\r\n function fnIsFormValid(form) {\r\n var valid = false;\r\n var interestMissing = false;\r\n\r\n if ($scope.company.linhaInteresse == null || $scope.company.linhaInteresse.length == 0) {\r\n interestMissing = true; \r\n }\r\n\r\n if (form.$invalid || interestMissing) {\r\n $anchorScroll();\r\n var errorTypes = Object.keys(form.$error);\r\n\r\n if (errorTypes.includes('required') || interestMissing) {\r\n var reqFields = {};\r\n var translationKeys = [];\r\n\r\n if (form.condicaoPagamentoArquivo.$error.required) form.condicaoPagamentoArquivo.$setDirty(true);\r\n\r\n if (form.$error.required)\r\n form.$error.required.forEach(function (r) { reqFields[r.$name] = r.$$attr.key; });\r\n\r\n if (interestMissing) \r\n reqFields['LinhaInteresse'] = 'LinhaInteresse';\r\n \r\n translationKeys = Object.values(reqFields);\r\n\r\n translationKeys.unshift('InvalidForm', 'FillRequiredFields', 'LF');\r\n SweetAlertFactory.showTranslationLote(translationKeys);\r\n\r\n\r\n } else if (errorTypes.includes('email')) {\r\n SweetAlertFactory.showTranslation('InvalidEmail');\r\n\r\n } else {\r\n SweetAlertFactory.showTranslation('InvalidForm');\r\n\r\n }\r\n\r\n } else {\r\n var translationKeys = [];\r\n\r\n if ($scope.SingleDocument !== true) { translationKeys.push('SingleDocumentPeru') }\r\n if ($scope.ChamberOfCommerceAndCertificate !== true) { translationKeys.push('ChamberOfCommerceAndCertificatePeru') }\r\n if ($scope.LicencaFuncionamento !== true) { translationKeys.push('LicencaFuncionamento') }\r\n if ($scope.DNI !== true) { translationKeys.push('DNI') }\r\n\r\n if ($scope.condicaoPagamentoArquivo == 2) {\r\n if ($scope.CommercialReferences !== true) { translationKeys.push('CommercialReferences') }\r\n if ($scope.FinancialStatementsCurrentYear !== true) { translationKeys.push('FinancialStatementsCurrentYear') }\r\n if ($scope.FinancialStatementsLastYear !== true) { translationKeys.push('FinancialStatementsLastYearPeru') }\r\n if ($scope.IGV !== true) { translationKeys.push('IGV') }\r\n }\r\n\r\n if (translationKeys.length > 0) {\r\n $anchorScroll();\r\n translationKeys.unshift('InvalidForm', 'AttachRequiredFiles', 'LF');\r\n SweetAlertFactory.showTranslationLote(translationKeys);\r\n\r\n } else {\r\n valid = true;\r\n }\r\n }\r\n\r\n return valid;\r\n }\r\n\r\n function transferComplete(evt) {\r\n $rootScope.loading = false;\r\n if (evt.target.status == 200) {\r\n if (evt.target.response) {\r\n var response = JSON.parse(evt.target.response);\r\n if (response.sucesso) {\r\n $scope.showModalSucesso();\r\n } else {\r\n $scope.showModalError();\r\n }\r\n } else {\r\n $scope.showModalSucesso();\r\n }\r\n } else {\r\n $scope.handleHttpError(evt);\r\n }\r\n }\r\n\r\n $scope.selectVendor = function (vendor) {\r\n $companyService.selectVendor($scope.company, vendor)\r\n }\r\n\r\n $scope.selectCountry = function (country) {\r\n if (!_.isEmpty(country)) {\r\n $scope.company.country = country;\r\n $scope.company.ukeyPais = country.westconCode;\r\n $scope.company.pais = country.name;\r\n searchState(country);\r\n } else {\r\n resetState();\r\n }\r\n }\r\n\r\n $scope.selectState = function (state) {\r\n if (!_.isEmpty(state)) {\r\n $scope.company.state = state;\r\n $scope.company.ukeyEstado = state.westconCode;\r\n $scope.company.estado = state.name;\r\n searchCity(state);\r\n } else {\r\n resetCity();\r\n }\r\n }\r\n\r\n $scope.selectCity = function (city) {\r\n $companyService.selectCity($scope.company, city);\r\n }\r\n\r\n $scope.selectTypeClients = function (client) { $scope.company.TipoDeClienteFornecedor = client };\r\n $scope.selectConditionPayment = function (conditionPayment) { $scope.company.CondicaoPagamento = conditionPayment };\r\n //$scope.listCountries = function (query) { return filterFilter($scope.countries, { name: query }) };\r\n $scope.queryWestconVendors = function (query) { return filterFilter($scope.westconVendors, { name: query }) };\r\n $scope.queryState = function (query) { return filterFilter($scope.states, { name: query }) };\r\n $scope.queryCity = function (query) { return filterFilter($scope.cities, { name: query }) };\r\n $scope.queryTypeClients = function (query) { return filterFilter($scope.typeClients, { name: query }) };\r\n $scope.queryConditionsPayments = function (query) { return filterFilter($scope.conditionsPayments, { name: query }) };\r\n\r\n function addContactNFe(key) {\r\n if (!key) key = 'contactNFe';\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: false,\r\n receiveNFe: true,\r\n receiveNFeXML: true,\r\n tipo: 'nfe'\r\n });\r\n }\r\n\r\n function addContactPurchases(key) {\r\n if (!key) key = 'contactPurchases';\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: false,\r\n receiveNFeXML: false,\r\n tipo: 'compras'\r\n });\r\n }\r\n\r\n function addContactAccounts(key) {\r\n if (!key) key = 'contactAccounts';\r\n $scope.company.contatos.push({\r\n nomeContato: $scope.company[key].nomeContato,\r\n telefone: $scope.company[key].telefone,\r\n email: $scope.company[key].email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: false,\r\n receiveNFeXML: false,\r\n tipo: 'contas'\r\n });\r\n }\r\n\r\n function addContacts() {\r\n\r\n $scope.company.userName = $scope.company.contactMain.nomeContato;\r\n $scope.company.userEmail = $scope.company.contactMain.email;\r\n\r\n $scope.company.contatos = [{\r\n nomeContato: $scope.company.contactMain.nomeContato,\r\n telefone: $scope.company.contactMain.telefone,\r\n email: $scope.company.contactMain.email,\r\n receiveFinancialInfo: true,\r\n receiveNFe: true,\r\n receiveNFeXML: true,\r\n tipo: 'principal'\r\n }];\r\n\r\n if ($scope.mainContactOnly) {\r\n delete $scope.company.contactNFe;\r\n delete $scope.company.contactPurchases;\r\n delete $scope.company.contactAccounts;\r\n \r\n addContactNFe('contactMain');\r\n addContactPurchases('contactMain');\r\n addContactAccounts('contactMain');\r\n } else {\r\n addContactNFe();\r\n addContactPurchases();\r\n addContactAccounts();\r\n }\r\n\r\n }\r\n\r\n function addLocale() {\r\n $scope.company.locale = $translate.use();\r\n }\r\n\r\n function getDays(callback) {\r\n $scope.days = [];\r\n for (var i = 1; i < 32; i++) {\r\n $scope.days.push(i);\r\n }\r\n if (typeof callback === 'function') {\r\n callback();\r\n }\r\n }\r\n\r\n if (_.isEmpty($rootScope.company) || _.isEmpty($rootScope.company.cnpj)) {\r\n document.location.href = $rootScope.sanitizeUrl(document.location.origin) + '/#!/company-registry/new';\r\n } else {\r\n $rootScope.loading = true;\r\n getDays(function () {\r\n CompanyAPI.getCompany({ codErp: codERP, code: $rootScope.company.cnpj, tipoJuridico: $rootScope.company.tipoJuridico }, mapCompany, $scope.handleHttpError);\r\n });\r\n }\r\n\r\n /* INNO-1359 Inicio */\r\n $scope.showModalSucesso = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: 'TD SYNNEX',\r\n textContent: toastrMessages.success,\r\n ok: 'OK'\r\n });\r\n $mdDialog\r\n .show(alert)\r\n .finally(function () {\r\n $location.path(\"/\");\r\n });\r\n };\r\n $scope.showModalError = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: 'TD SYNNEX',\r\n textContent: toastrMessages.error,\r\n ok: 'OK'\r\n });\r\n $mdDialog\r\n .show(alert)\r\n .finally(function () {\r\n alert = undefined;\r\n });\r\n };\r\n\r\n $scope.showModalInvalidFile = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: 'TD SYNNEX',\r\n textContent: toastrMessages.errorInvalidFile + \": \",\r\n ok: 'OK'\r\n });\r\n $mdDialog\r\n .show(alert)\r\n .finally(function () {\r\n alert = undefined;\r\n });\r\n };\r\n\r\n $scope.showModalFileSize = function (evt) {\r\n var alert = $mdDialog.alert({\r\n title: 'TD SYNNEX',\r\n textContent: toastrMessages.errorFileSize,\r\n ok: 'OK'\r\n });\r\n $mdDialog\r\n .show(alert)\r\n .finally(function () {\r\n alert = undefined;\r\n });\r\n };\r\n\r\n //INTRA-3114\r\n $scope.UpdateAcionista = function (vm) {\r\n $shareholderService.Update ($scope, vm)\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.company-registry')\r\n .controller('CompanyRegistryPreCtrl', CompanyRegistryPreCtrl);\r\n\r\n /** @ngInject */\r\n function CompanyRegistryPreCtrl (\r\n $rootScope,\r\n $scope,\r\n $helper,\r\n $locale,\r\n $routeParams,\r\n $formatter,\r\n $companyFactory,\r\n $companyService,\r\n $modalCompany,\r\n $codErp,\r\n $factory,\r\n filterFilter,\r\n EnderecoAPI,\r\n CisAPI,\r\n SweetAlertFactory,\r\n vcRecaptchaService\r\n ) {\r\n\r\n $scope.hostname = document.location.hostname;\r\n $scope.locale = $locale;\r\n $scope.company = { contactMain: {} };\r\n $scope.countryValue = null;\r\n $scope.codErp = null;\r\n $scope.nextStepUrl = null;\r\n $scope.response = null;\r\n $scope.widgetId = null;\r\n $scope.region = \"\";\r\n $scope.calaCountries = [];\r\n $scope.isUpdate = false;\r\n $scope.IsValidRegion = false;\r\n\r\n $scope.model = {\r\n key: '6LcopLsiAAAAAJMsNNn5xDZ4oro82iwqO18Rd-sg'\r\n };\r\n\r\n $scope.countries = $companyFactory.GetCompanies();\r\n $scope.formatDate = $formatter.formatDate;\r\n\r\n $scope.listCountries = function (query) { \r\n return filterFilter($scope.calaCountries, { name: query }) \r\n };\r\n\r\n $scope.selectRegion = function (val) {\r\n\r\n if (val && val.CodERP == $codErp.Brasil) {\r\n\r\n window.location = ppCompanyUrl;\r\n\r\n $scope.countryValue = null;\r\n\r\n return;\r\n } else {\r\n\r\n if (val && val.CodERP == $codErp.Mexico) {\r\n\r\n window.location = ppCompanyUrl + '?region=mex';\r\n\r\n $scope.countryValue = null;\r\n }\r\n }\r\n\r\n $scope.company.pais = $scope.region = val.Text;\r\n $scope.company.paisCode = val.Value;\r\n\r\n $scope.company.codERP = val.CodERP;\r\n $scope.codErp = val.CodERP;\r\n $scope.nextStepUrl = val.Url;\r\n \r\n if (val.Value == 'cala') {\r\n fnListCalaCountries();\r\n }\r\n\r\n if (Boolean($routeParams.reseller)) $scope.company.intranetType = '3';\r\n if (Boolean($routeParams.enduser)) $scope.company.intranetType = '4';\r\n };\r\n\r\n $scope.selectCountry = function (country) {\r\n if (!_.isEmpty(country)) {\r\n $scope.company.country = country;\r\n $scope.company.ukeyPais = country.westconCode;\r\n $scope.company.pais = country.name;\r\n } else {\r\n $scope.company.country = null;\r\n $scope.company.ukeyPais = null;\r\n $scope.company.pais = $scope.region;\r\n }\r\n };\r\n\r\n $scope.onCaptchaExpiration = function() {\r\n vcRecaptchaService.reload($scope.widgetId);\r\n $scope.response = null;\r\n };\r\n\r\n $scope.setCaptchaResponse = function (response) {\r\n $scope.response = response;\r\n };\r\n\r\n $scope.setCaptchaWidgetId = function (widgetId) {\r\n $scope.widgetId = widgetId;\r\n };\r\n\r\n $scope.onSearchCompany = function (form) {\r\n if (form.$invalid) {\r\n if ($scope.company.codERP == 2 && !$scope.company.ukeyPais) {\r\n SweetAlertFactory.showTranslation('CountryNotFound');\r\n var input = $scope.frmCompany.westconPais;\r\n input.$error.required = true;\r\n input.$setDirty(true);\r\n \r\n } else {\r\n SweetAlertFactory.showTranslation('InvalidForm');\r\n }\r\n }\r\n else if ($scope.company.codERP != 7) {\r\n if ($scope.company.codERP == 5 && $scope.company.validateTaxID == \"true\" && !isValidRuc($scope.company.cnpj)) {\r\n return SweetAlertFactory.showTranslation('RUCInvalido');\r\n }\r\n $rootScope.loading = true;\r\n $companyService.GetCompany($scope.company.codERP, $scope.company.cnpj, $scope.company.tipoJuridico, fnMapCompany);\r\n } else {\r\n fnNextStep();\r\n }\r\n };\r\n\r\n function fnListCalaCountries () {\r\n $rootScope.loading = true;\r\n var params = { codErp: $scope.company.codERP, term: '' };\r\n EnderecoAPI.listCountries(params, fnAfterListCalaCountries, $helper.throwException);\r\n };\r\n\r\n function fnAfterListCalaCountries (data) { \r\n $rootScope.loading = false;\r\n $scope.calaCountries = data;\r\n };\r\n\r\n function fnMapCompany (company) {\r\n $rootScope.loading = false;\r\n $scope.isUpdate = false;\r\n\r\n if ($scope.company.codERP == 1) { \r\n if (!company.cnpj && !company.isSerasa) {\r\n // show modal not found company in Serasa.\r\n fnShowNotFoundModal();\r\n } else {\r\n _.extend($scope.company, company);\r\n\r\n if (company.isSerasa) {\r\n // load data company with serasa.\r\n company.intranetType = $scope.company.intranetType;\r\n company.cnpj = $scope.company.cnpj;\r\n $scope.isSerasa = true;\r\n fnNextStep();\r\n } else {\r\n fnShowAlertModal(); \r\n }\r\n }\r\n } else if($scope.company.codERP == 4){ // Caso Colombia\r\n if (!company.cnpj || company.status == 'Nova empresa') {\r\n fnNextStep();\r\n } else {\r\n _.extend($scope.company, company);\r\n fnShowAlertModal(); \r\n }\r\n } else { \r\n if (!company.cnpj) {\r\n fnNextStep();\r\n } else {\r\n _.extend($scope.company, company);\r\n fnShowAlertModal(); \r\n }\r\n }\r\n };\r\n\r\n function fnNextStep () {\r\n $companyService.RegistryNextStep($scope.company, $scope.isUpdate, !!$scope.isSerasa, false);\r\n };\r\n\r\n function fnShowAlertModal () {\r\n $modalCompany.showAlertModal($scope.company.dataAtualizacao, function (isConfirm) { \r\n if (isConfirm) {\r\n $scope.isUpdate = true;\r\n fnNextStep()\r\n } else {\r\n $scope.company = { contactMain: {} };\r\n $scope.countryValue = null;\r\n }\r\n });\r\n };\r\n\r\n function fnShowNotFoundModal () {\r\n $modalCompany.showNotFoundModal(null, function (isConfirm) { \r\n if (isConfirm) {\r\n fnNextStep()\r\n }\r\n });\r\n };\r\n\r\n function isValidRuc(ruc) {\r\n if (ruc.length != 11) {\r\n return false;\r\n }\r\n \r\n if (ruc.substring(0, 2) != 20) {\r\n return false;\r\n }\r\n \r\n return true;\r\n }\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.contact-us')\r\n .controller('ContactUsCtrl', ContactUsCtrl);\r\n\r\n /** @ngInject */\r\n function ContactUsCtrl(\r\n $rootScope,\r\n $scope,\r\n $anchorScroll,\r\n $helper,\r\n $locale,\r\n $localeService,\r\n $location,\r\n $mdDialog,\r\n $session,\r\n $auth,\r\n $translate,\r\n $document,\r\n AlertFactory,\r\n SweetAlertFactory,\r\n ContactUsAPI,\r\n filterFilter,\r\n toastr\r\n ) {\r\n\r\n $localeService.setLocale($session.get('locale'));\r\n\r\n var toastrMessages = {};\r\n var keys = [\r\n 'InvalidForm',\r\n 'EmailSuccess'\r\n ];\r\n function getToastrTranslations() {\r\n $translate(keys).then(function (translations) {\r\n toastrMessages.invalidForm = translations['InvalidForm'];\r\n toastrMessages.EmailSuccess = translations['EmailSuccess'];\r\n });\r\n $scope.$on('$localeChangeSuccess', getToastrTranslations);\r\n }\r\n getToastrTranslations();\r\n\r\n $scope.contactUs = {};\r\n $scope.systemAreaList = [\r\n { value: \"1\", key: 'contactUs.Inventory' },\r\n { value: \"2\", key: 'contactUs.PriceLists' },\r\n { value: \"3\", key: 'contactUs.Orders' },\r\n { value: \"4\", key: 'contactUs.Tracking' },\r\n { value: \"5\", key: 'contactUs.Licenses' },\r\n { value: \"6\", key: 'contactUs.Financial' },\r\n { value: \"7\", key: 'contactUs.Bluesky' },\r\n ];\r\n $scope.regionList = [\r\n { value: \"1\", key: 'Region.Brasil' },\r\n { value: \"2\", key: 'Region.Cala' },\r\n { value: \"3\", key: 'Region.Mexico' },\r\n { value: \"4\", key: 'Region.Colombia' },\r\n { value: \"5\", key: 'Region.Peru' },\r\n { value: \"6\", key: 'Region.Ecuador' },\r\n { value: \"7\", key: 'Region.Argentina' },\r\n { value: \"8\", key: 'Region.Chile' },\r\n ];\r\n\r\n /** Captcha **/\r\n $scope.hostname = document.location.hostname;\r\n $scope.locale = $locale;\r\n $scope.response = null;\r\n $scope.widgetId = null;\r\n \r\n $scope.model = {\r\n key: '6LcopLsiAAAAAJMsNNn5xDZ4oro82iwqO18Rd-sg'\r\n };\r\n $scope.setResponse = function (response) {\r\n console.info('Response available');\r\n $scope.response = response;\r\n };\r\n $scope.setWidgetId = function (widgetId) {\r\n console.info('Created widget ID: %s', widgetId);\r\n $scope.widgetId = widgetId;\r\n };\r\n $scope.cbExpiration = function() {\r\n console.info('Captcha expired. Resetting response object');\r\n vcRecaptchaService.reload($scope.widgetId);\r\n $scope.response = null;\r\n };\r\n /** Captcha **/\r\n\r\n $scope.sendContactUs = function (frmContactUs) {\r\n if (frmContactUs.$invalid) {\r\n $anchorScroll();\r\n toastr.info(toastrMessages.invalidForm);\r\n } else {\r\n $rootScope.loading = true;\r\n var systemAreaTranslationKey = $scope.systemAreaList.filter(function (dict) { \r\n return dict.value == $scope.contactUs.systemAreaSelected \r\n })[0].key\r\n var regionTranslationKey = $scope.regionList.filter(function (dict) { \r\n return dict.value == $scope.contactUs.regionSelected \r\n })[0].key\r\n\r\n $translate([systemAreaTranslationKey, regionTranslationKey])\r\n .then(function (translation) { \r\n $scope.contactUs.culture = $session.get('locale');\r\n $scope.contactUs.CodERP = parseInt($scope.contactUs.regionSelected);\r\n $scope.contactUs.systemArea = translation[systemAreaTranslationKey];\r\n $scope.contactUs.region = translation[regionTranslationKey];\r\n \r\n ContactUsAPI.Send($scope.contactUs, fnAfterSend, $helper.throwException);\r\n })\r\n }\r\n };\r\n\r\n function fnInit () {\r\n var user = $auth.getCurrentUser();\r\n if (!_.isEmpty(user)) {\r\n $scope.contactUs.name = user.Name;\r\n $scope.contactUs.email = user.Email;\r\n $scope.contactUs.company = user.Enterprise;\r\n $scope.contactUs.telephone = user.Telephone;\r\n $scope.contactUs.regionSelected = \"\"+user.CodERP;\r\n }\r\n if ($document.referrer) {\r\n fnFillSystemArea($document.referrer);\r\n }\r\n }\r\n\r\n function fnFillSystemArea (value) {\r\n switch (value.trim()) {\r\n case '/online-stock':\r\n $scope.contactUs.systemAreaSelected = \"1\";\r\n break; \r\n case '/price-list':\r\n $scope.contactUs.systemAreaSelected = \"2\";\r\n break; \r\n case '/reseller-order/history':\r\n $scope.contactUs.systemAreaSelected = \"3\";\r\n break; \r\n case '/reseller-order/tracking':\r\n case '/reseller-order/report-205':\r\n $scope.contactUs.systemAreaSelected = \"4\";\r\n break; \r\n case '/reseller-order/license':\r\n $scope.contactUs.systemAreaSelected = \"5\";\r\n break; \r\n case '/invoice/reseller':\r\n case '/invoice/enduser':\r\n case '/invoice/batch':\r\n $scope.contactUs.systemAreaSelected = \"6\";\r\n break; \r\n case '/bluesky':\r\n case '/bluesky-analytics':\r\n $scope.contactUs.systemAreaSelected = \"7\";\r\n break; \r\n }\r\n }\r\n\r\n function fnAfterSend (response) {\r\n AlertFactory.showPopupFinally( toastrMessages.EmailSuccess, function () { $location.path(\"/\") });\r\n $rootScope.loading = false;\r\n }\r\n\r\n fnInit();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.invoice')\r\n .controller('BatchInvoiceCtrl', BatchInvoiceCtrl);\r\n\r\n /** @ngInject */\r\n function BatchInvoiceCtrl(\r\n $rootScope, \r\n $scope, \r\n $location,\r\n $helper,\r\n $codErp,\r\n $modalInvoiceFactory,\r\n $commissionStatus,\r\n SweetAlertFactory,\r\n EndUserInvoiceAPI\r\n ) {\r\n\r\n $rootScope.loading = true;\r\n $scope.noBatch = false;\r\n $scope.invoiceBatchActive = true;\r\n $scope.batchHeaderList = [];\r\n $scope.statusCommissionList = $commissionStatus.Get(false);\r\n $scope.totalToMountBatch = 0;\r\n $scope.totalToMountBatchWithTaxes = 0;\r\n $scope.totalToMountBatchNoTaxes = 0;\r\n\r\n // Billing Company Select List\r\n $scope.billingCompanySelectList = [\r\n { id: 0, name: 'Synnex', selected: true },\r\n { id: 20, name: 'TechData' },\r\n ];\r\n\r\n $scope.showBillingCompanySelect = $rootScope.user.CodERP == $codErp.Argentina \r\n\r\n // Paginate\r\n $scope.limitOptions = [12, 24, 36, 48]\r\n $scope.limit = $scope.limitOptions[0];\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n $scope.totalRows = 5000;\r\n\r\n // Filter \r\n $scope.filter = {\r\n commissionGroup: null,\r\n statusCommission: '1',\r\n billingCompany: 0,\r\n pageNumber: 0,\r\n rowsPage: 50\r\n };\r\n \r\n // Formatters\r\n $scope.formatParcel = function (invoiceParcel) {\r\n var parcel = String(invoiceParcel);\r\n return parcel.substr(parcel.length - 2, 2);\r\n };\r\n\r\n $scope.formatOV = function (value) {\r\n return !value ? 'N/A' : value;\r\n };\r\n\r\n $scope.onApplyFilter = function (evt) {\r\n evt.preventDefault();\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n fnGetBatchByFilter();\r\n };\r\n\r\n $scope.onResetFilter = function (evt) {\r\n evt.preventDefault();\r\n $scope.filter = {\r\n commissionGroup: null,\r\n statusCommission: '1',\r\n billingCompany: 0,\r\n pageNumber: 0,\r\n rowsPage: 50\r\n };\r\n };\r\n\r\n $scope.onToggleDetails = function (evt, header) {\r\n var showdetails = !header.showdetails;\r\n $scope.batchHeaderList.forEach(function (header) {\r\n header.showdetails = false;\r\n });\r\n header.showdetails = showdetails;\r\n };\r\n\r\n $scope.makeCommissionBatch = function (evt) {\r\n if ($codErp.Brasil == $rootScope.user.CodERP) {\r\n\r\n $modalInvoiceFactory.LotesComissaoMessageModalCtrl(null, {}, function () { });\r\n\r\n return;\r\n }\r\n\r\n $location.url('/invoice/enduser?isCommissionBatch=true');\r\n };\r\n\r\n // Functions\r\n function fnGetBatchByFilter () {\r\n $rootScope.loading = true;\r\n var filter = fnGetFilter();\r\n EndUserInvoiceAPI.GetBatchByFilter(filter, fnAfterListBatch, $helper.throwException);\r\n };\r\n\r\n function fnAfterListBatch (response) {\r\n if (!response.totalRows) {\r\n SweetAlertFactory.showTranslation('Invoice.AnyTitle');\r\n $scope.batchHeaderList = [];\r\n $scope.noBatch = true;\r\n } else {\r\n $scope.totalRows = response.totalRows;\r\n $scope.noBatch = false;\r\n $scope.batchHeaderList = response.batchHeaderList;\r\n $scope.totalToMountBatch = response.titlesSummary.totalToMountBatch;\r\n $scope.totalToMountBatchWithTaxes = response.titlesSummary.totalToMountBatchWithTaxes;\r\n $scope.totalToMountBatchNoTaxes = response.titlesSummary.totalToMountBatchNoTaxes;\r\n }\r\n $rootScope.loading = false;\r\n };\r\n\r\n function fnGetFilter () {\r\n var filter = $scope.filter;\r\n return {\r\n commissionGroup: filter.commissionGroup || null,\r\n statusCommission: filter.statusCommission || '1',\r\n billingCompany: $scope.showBillingCompanySelect ? filter.billingCompany : null,\r\n pageNumber: $scope.offset || 0,\r\n rowsPage: $scope.limit\r\n };\r\n };\r\n\r\n // Paginate\r\n $scope.nextPage = function (evt) {\r\n $scope.lastOffset = $scope.offset;\r\n $scope.offset = $scope.offset + $scope.limit;\r\n fnGetBatchByFilter();\r\n };\r\n\r\n $scope.prevPage = function (evt) {\r\n $scope.lastOffset = $scope.offset;\r\n $scope.offset = $scope.offset - $scope.limit;\r\n fnGetBatchByFilter();\r\n };\r\n\r\n $scope.hasNextPage = function (evt) {\r\n return $scope.offset + $scope.limit >= $scope.totalRows;\r\n };\r\n\r\n $scope.changeLimit = function (evt, limit) {\r\n $scope.limit = limit || $scope.limitOptions[0];\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n fnGetBatchByFilter();\r\n };\r\n\r\n\r\n (function fnInit () {\r\n fnGetBatchByFilter();\r\n })();\r\n }\r\n})();\r\n\n(function () {\r\n\t'use strict';\r\n\r\n\tangular.module('my.pages.invoice')\r\n\t.controller('EndUserInvoiceCtrl', EndUserInvoiceCtrl);\r\n\r\n\t/** @ngInject */\r\n\tfunction EndUserInvoiceCtrl(\r\n $rootScope, \r\n $scope, \r\n $helper,\r\n $location,\r\n $codErp,\r\n $session, \r\n $routeParams,\r\n $modalInvoiceFactory,\r\n $commissionStatus,\r\n $commissionType,\r\n $titleStatus,\r\n SweetAlertFactory,\r\n EndUserInvoiceAPI,\r\n BankSlipAPI\r\n ) {\r\n\r\n $scope.urlManualCommissionBatch = baseApi + 'Download/ManualCommissionBatch';\r\n $scope.urlNfComissionamento = 'https://blogbrasil.westcon.com/?hs_preview=DjfLDtTM-31245606608';\r\n\r\n $rootScope.loading = true;\r\n $scope.isCommissionBatch = ($routeParams.isCommissionBatch === 'true');\r\n $scope.totalCommissionBatch = 0;\r\n $scope.totalCommissionBatchWithTaxes = 0;\r\n $scope.totalCommissionBatchNoTaxes = 0;\r\n $scope.totalCommissionBatchIVA = 0;\r\n $scope.isEmpty = _.isEmpty;\r\n $scope.fileList = [];\r\n\r\n $scope.statusNoteList = $titleStatus.Get();\r\n $scope.statusCommissionList = $commissionStatus.Get();\r\n $scope.typeCommissionList = $commissionType.Get();\r\n\r\n // Paginate\r\n $scope.limitOptions = [25, 50, 75, 100];\r\n $scope.limit = $scope.limitOptions[0];\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n $scope.totalRows = 0;\r\n\r\n // Filter \r\n $scope.filter = {};\r\n $scope.summary = {};\r\n\r\n $scope.emptyTitleList = false;\r\n $scope.codErp = $rootScope.user.codErp;\r\n $scope.invoiceEndUserActive = true;\r\n $scope.titleList = [];\r\n $scope.maxOrderValue = 100;\r\n $scope.minOrderValue = 0;\r\n \r\n $scope.propertyName = 'emissionDate';\r\n $scope.reverse = true;\r\n $scope.statusList = [];\r\n $scope.valorMaximo = 0;\r\n $scope.valorMinimo = 0;\r\n $scope.viewData = {};\r\n $scope.viewData.filtered = [];\r\n $scope.invoiceNumber = 0;\r\n \r\n // Billing Company Select List\r\n $scope.billingCompanySelectList = [\r\n { id: 0, name: 'Synnex', selected: true },\r\n { id: 20, name: 'TechData' },\r\n ];\r\n $scope.showBillingCompanySelect = $rootScope.user.CodERP == $codErp.Argentina \r\n\r\n // Formatters\r\n $scope.formatOV = function (value) {\r\n return !value ? 'N/A' : value;\r\n };\r\n\r\n $scope.formatParcel = function (invoiceParcel) {\r\n var parcel = String(invoiceParcel);\r\n return parcel.substr(parcel.length - 2, 2);\r\n };\r\n\r\n $scope.formatDateTime = function (value) {\r\n return value ? new Date(value).toLocaleString() : '-';\r\n };\r\n\r\n // Summary\r\n $scope.fnRedirectContactUs = function () {\r\n $location.url('/contact-us');\r\n }\r\n\r\n // ENDUSER\r\n // Filter\r\n $scope.onApplyFilter = function (evt) {\r\n evt.preventDefault();\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n fnListByFilter();\r\n };\r\n\r\n $scope.onResetFilter = function (evt) {\r\n if (evt) evt.preventDefault();\r\n\r\n $scope.filter = {\r\n query: null,\r\n statusNote: '4',\r\n statusCommission: '1',\r\n typeCommission: '1',\r\n cutDate: null,\r\n opened: 1,\r\n oVWestcon: null,\r\n customerCode: null,\r\n numberTitle: null,\r\n endUser: null,\r\n minEmissionDate: null,\r\n maxEmissionDate: null,\r\n minDueDate: null,\r\n maxDueDate: null,\r\n billingCompany: 0\r\n };\r\n };\r\n\r\n // Form\r\n $scope.downloadWorksheet = function (evt) {\r\n var filter = fnGetFilter();\r\n $rootScope.loading = true;\r\n EndUserInvoiceAPI.DownloadExcel(filter, fnAfterDownload, $helper.throwException);\r\n };\r\n\r\n $scope.makeCommissionBatch = function (evt) {\r\n\r\n if ($codErp.Brasil == $rootScope.user.CodERP) {\r\n\r\n $modalInvoiceFactory.LotesComissaoMessageModalCtrl(null, {}, function () { });\r\n\r\n return;\r\n }\r\n\r\n getCommissionBatchTitles();\r\n };\r\n\r\n // Table\r\n $scope.onDownloadBankSlip = function (evt, invoice) {\r\n $rootScope.loading = true;\r\n \r\n BankSlipAPI.GetBankSlip({ key: fnMakeBankSlipIdentifier(invoice) }, function (response) {\r\n $rootScope.loading = false;\r\n\r\n if (response.bankSlip == \"notgenerated\" || !response.bankSlip) {\r\n openBoletoModal(invoice, \"notgenerated\");\r\n\r\n } else if (response.bankSlip == \"getintouch\") {\r\n $scope.typeBankSlip = \"getintouch\";\r\n openBoletoModal({}, \"getintouch\");\r\n\r\n } else {\r\n var a = document.createElement('a'); \r\n a.href = response.bankSlip;\r\n a.download = 'bankSlip.pdf';\r\n document.body.appendChild(a);\r\n a.click();\r\n \r\n fnSaveLog(invoice); \r\n }\r\n }, $helper.throwException);\r\n\r\n };\r\n\r\n $scope.onClickNFSe = function (evt, key) {\r\n $rootScope.loading = true;\r\n EndUserInvoiceAPI.GetXMLNfe({ key: key }, fnAfterClickNFSe, $helper.throwException); \r\n };\r\n\r\n $scope.onShowNFSe = function (evt, tipo) {\r\n return String(tipo).trim().toUpperCase() === 'SS';\r\n };\r\n\r\n $scope.onOpenURLNFe = function (evt, url) {\r\n console.log(url);\r\n };\r\n\r\n $scope.onGetXmlNfe = function (evt, key, invoice) {\r\n $rootScope.loading = true;\r\n $scope.invoiceNumber = invoice;\r\n EndUserInvoiceAPI.GetXMLNfe({ key: key }, fnAfterXMLNfe, $helper.throwException);\r\n };\r\n\r\n $scope.onGetCSP = function (evt, key) {\r\n $rootScope.loading = true;\r\n EndUserInvoiceAPI.GetCSP({ key: key }, fnAfterCSP, $helper.throwException);\r\n };\r\n\r\n // CREATE BATCH\r\n // Form \r\n $scope.createCommissionBatch = function (evt) {\r\n if ($codErp.Cala != $rootScope.user.CodERP && !isEnableToCreateCommissionBatch($rootScope.user.CodERP)) {\r\n openCommissionBatchMaxDateNoticeModal();\r\n } else if ($scope.fileList.length == 0) {\r\n SweetAlertFactory.showTranslation('InvalidFileList');\r\n } else {\r\n fnCreateCommissionBatch();\r\n }\r\n };\r\n\r\n $scope.previewFiles = function (elementHTML) {\r\n $scope.$apply(function () {\r\n var $preview = document.querySelector('#preview');\r\n var files = document.querySelector('input[type=file]').files;\r\n var readAndPreview = function (file) {\r\n if (/\\.(pdf)$/i.test(file.name)) {\r\n var reader = new FileReader();\r\n reader.addEventListener(\"load\", function () {\r\n var image = new Image();\r\n image.height = 64;\r\n image.title = file.name;\r\n image.src = \"data:image/jpeg;base64,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\";\r\n $preview.appendChild(image);\r\n $scope.fileList.push({\r\n name: file.name,\r\n value: this.result\r\n });\r\n document.querySelector('#clear-attachments').style.display = 'block';\r\n });\r\n reader.readAsDataURL(file);\r\n }\r\n };\r\n if (files) {\r\n [].forEach.call(files, readAndPreview);\r\n }\r\n });\r\n };\r\n\r\n $scope.clearAttachments = function (evt) {\r\n if (evt) evt.preventDefault();\r\n $scope.fileList = [];\r\n document.querySelector('#preview').innerHTML = '';\r\n document.querySelector('#clear-attachments').style.display = 'none';\r\n angular.element(document.querySelector('input[type=file]')).val(null);\r\n };\r\n\r\n function fnCreateCommissionBatch () {\r\n $rootScope.loading = true;\r\n\r\n var ukeyCommission = $scope.titleList.filter(function (title) {\r\n return title.isChecked;\r\n }).map(function (title) { return title.parcelUkey }).join(',');\r\n\r\n var params = {\r\n ukeyCommission: ukeyCommission,\r\n fileList: $scope.fileList\r\n };\r\n\r\n EndUserInvoiceAPI.CreateCommissionBatch(\r\n params,\r\n fnAfterCreateCommissionBatch,\r\n $helper.throwException\r\n );\r\n };\r\n\r\n function fnAfterCreateCommissionBatch (response) {\r\n $rootScope.loading = false;\r\n openCommissionBatchSuccessModal(response.commissionGroup)\r\n }; \r\n\r\n //Table \r\n $scope.allChecked = function() {\r\n return $scope.titleList.every(function(title){return title.isChecked});\r\n };\r\n\r\n $scope.someChecked = function() {\r\n return $scope.titleList.some(function(title){return title.isChecked}) && !$scope.allChecked();\r\n };\r\n\r\n $scope.toggleAll = function (evt) {\r\n var all = !$scope.allChecked()\r\n for (var i = 0; i < $scope.titleList.length; i++) {\r\n $scope.titleList[i].isChecked = all;\r\n }\r\n $scope.onRecalculate();\r\n };\r\n\r\n $scope.onRecalculate = function (evt) {\r\n if ($codErp.Colombia == $rootScope.user.CodERP){\r\n $scope.totalCommissionBatchNoTaxes = $scope.titleList.map(function (title) {\r\n return title.isChecked ? title.comissionTotalNoTaxes : 0;\r\n }).reduce(function (total, valor) { return total + valor });\r\n \r\n $scope.totalCommissionBatchWithTaxes = $scope.titleList.map(function (title) {\r\n return title.isChecked ? title.comissionTotalWithTaxes : 0;\r\n }).reduce(function (total, valor) { return total + valor });\r\n\r\n $scope.totalCommissionBatchIVA = $scope.totalCommissionBatchWithTaxes * 0.19;\r\n\r\n $scope.totalCommissionBatch = $scope.totalCommissionBatchNoTaxes + $scope.totalCommissionBatchWithTaxes + $scope.totalCommissionBatchIVA;\r\n return;\r\n }\r\n\r\n $scope.totalCommissionBatch = $scope.titleList.map(function (title) {\r\n return title.isChecked ? title.commissionTotal : 0;\r\n }).reduce(function (total, valor) { return total + valor });\r\n\r\n };\r\n\r\n $scope.urlManualCommissionBatchColombia = function(){\r\n $modalInvoiceFactory.LotesComissaoMessageColombiaModalCtrl(null, {}, function () { });\r\n }\r\n\r\n $scope.onRecalculateColombiaTaxes = function (evt) {\r\n $scope.totalCommissionBatch = $scope.titleList.map(function (title) {\r\n return title.isChecked ? title.commissionTotal : 0;\r\n }).reduce(function (total, valor) { return total + valor });\r\n };\r\n\r\n // Functions\r\n function fnListByFilter () {\r\n if (fnValidateFilter()) {\r\n var filter = fnGetFilter();\r\n $rootScope.loading = true;\r\n EndUserInvoiceAPI.GetTitlesByFilter(filter, fnAfterListEndUserInvoice, $helper.throwException);\r\n }\r\n };\r\n\r\n function fnValidateFilter () {\r\n if ($scope.filter.minEmissionDate || $scope.filter.maxEmissionDate) {\r\n if (!$scope.filter.minEmissionDate || !$scope.filter.maxEmissionDate) {\r\n SweetAlertFactory.showTranslationLote([ 'RangeEmissao', 'Validate.DateAlert' ]);\r\n return false;\r\n }\r\n if (new Date($scope.filter.minEmissionDate) > new Date($scope.filter.maxEmissionDate)) {\r\n SweetAlertFactory.showTranslationLote([ 'RangeEmissao', 'Validate.DateError' ]);\r\n return false;\r\n }\r\n }\r\n\r\n if ($scope.filter.minDueDate || $scope.filter.maxDueDate) {\r\n if (!$scope.filter.minDueDate || !$scope.filter.maxDueDate) {\r\n SweetAlertFactory.showTranslationLote([ 'Vencimento', 'Validate.DateAlert' ]);\r\n return false;\r\n }\r\n if (new Date($scope.filter.minDueDate) > new Date($scope.filter.maxDueDate)) {\r\n SweetAlertFactory.showTranslationLote([ 'Vencimento', 'Validate.DateError' ]);\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n function fnGetFilter () {\r\n var filter = $scope.filter;\r\n return {\r\n query: filter.query || null,\r\n statusNote: filter.statusNote || 4,\r\n statusCommission: filter.statusCommission || 1,\r\n typeCommission: filter.typeCommission || 1,\r\n cutDate: filter.cutDate || null,\r\n opened: filter.opened || 1,\r\n offset: $scope.offset || 0,\r\n limit: $scope.limit,\r\n orderBy: $scope.orderBy,\r\n ASC: $scope.ASC,\r\n oVWestcon: filter.oVWestcon || null,\r\n customerCode: filter.customerCode || null,\r\n numberTitle: filter.numberTitle || null,\r\n endUser: filter.endUser || null,\r\n minEmissionDate: filter.minEmissionDate || null,\r\n maxEmissionDate: filter.maxEmissionDate || null,\r\n minDueDate: filter.minDueDate || null,\r\n maxDueDate: filter.maxDueDate || null,\r\n billingCompany: $scope.showBillingCompanySelect ? filter.billingCompany : null,\r\n culture: $session.get('locale', 'pt-br')\r\n };\r\n };\r\n\r\n function getCommissionBatchTitles () {\r\n var filter = { \r\n statusCommission: 2, \r\n noCommissionGroup: true, \r\n rowsPage: 1000,\r\n offset: $scope.offset || 0, \r\n limit: $scope.limit, \r\n orderBy: $scope.orderBy, \r\n ASC: $scope.ASC,\r\n culture: $session.get('locale', 'pt-br'),\r\n billingCompany: $routeParams.billingCompany ? $routeParams.billingCompany : $scope.filter.billingCompany\r\n };\r\n\r\n $location.search({isCommissionBatch: 'true', billingCompany: filter.billingCompany});\r\n $scope.titleList = [];\r\n $scope.isCommissionBatch = true;\r\n $rootScope.loading = true;\r\n EndUserInvoiceAPI.GetTitlesByFilter(filter, fnAfterListEndUserInvoice, $helper.throwException);\r\n };\r\n\r\n function fnAfterDownload (response) {\r\n $rootScope.loading = false;\r\n window.open(baseApi + response.url, \"_blank \");\r\n };\r\n\r\n function fnAfterListEndUserInvoice (response) {\r\n if (!response.titles || response.titles.length === 0) {\r\n\r\n SweetAlertFactory.showTranslation('Invoice.AnyTitle');\r\n $scope.titleList = [];\r\n $scope.emptyTitleList = true;\r\n fnResetSummary();\r\n\r\n } else {\r\n\r\n $scope.emptyTitleList = false;\r\n $scope.summary = response.summary;\r\n $scope.totalRows = response.summary.totalRows;\r\n\r\n if ($scope.isCommissionBatch) {\r\n $scope.titleList = response.titles.map(function (title) {\r\n title.isChecked = true;\r\n return title;\r\n });\r\n $scope.onRecalculate();\r\n } else {\r\n $scope.titleList = response.titles;\r\n }\r\n } \r\n\r\n $rootScope.loading = false;\r\n };\r\n\r\n function fnResetSummary () {\r\n $scope.summary = {\r\n currency: '',\r\n totalCommissions: 0,\r\n totalCommissionsPaid: 0,\r\n totalCommissionsCanceled: 0,\r\n totalCommissionsPending: 0,\r\n totalCommissionsReleased: 0,\r\n totalToMountBatch: 0,\r\n totalToMountBatchWithTaxes: 0,\r\n totalToMountBatchNoTaxes: 0,\r\n totalRows: 0\r\n };\r\n };\r\n \r\n function fnMakeBankSlipIdentifier(invoice) {\r\n return invoice.boletoParcelUkey;//$scope.removeSpecialCharacters(bankSlip.parcelUkey + bankSlip.customerID);\r\n }\r\n\r\n function fnSaveLog(invoice) {\r\n var params = {\r\n BankSlipIdentifier: fnMakeBankSlipIdentifier(invoice),\r\n IpAddress: $rootScope.ipAddress\r\n };\r\n \r\n DownloadBankSlipLogFactory.saveLog(\r\n params,\r\n function (response) {\r\n fnAfterSaveLog(invoice);\r\n },\r\n $helper.throwException\r\n );\r\n };\r\n\r\n function fnAfterSaveLog (invoice) {\r\n\r\n var params = { bankSlipIdentifier: fnMakeBankSlipIdentifier(invoice) };\r\n\r\n DownloadBankSlipLogFactory.ListBy(\r\n params,\r\n function (response) {\r\n invoice.logs = response.lstDownloadBankSlipLog;\r\n },\r\n $helper.throwException\r\n );\r\n\r\n return invoice;\r\n };\r\n\r\n function fnAfterClickNFSe (data) {\r\n var json = XmlToObject(data.xml);\r\n\r\n var CNPJ = \"28.268.233/0007-84\";\r\n var NumeroNota = json[\"NOTA_FISCAL\"][\"NumeroNota\"];\r\n var ChaveValidacao = json[\"NOTA_FISCAL\"][\"ChaveValidacao\"];\r\n\r\n var url = \"http://apps.serra.es.gov.br:8080/tbw/loginWeb.jsp\" +\r\n \"?execobj=NFENotaFiscalBuscarDireto\" +\r\n \"&cnpj=\" + CNPJ +\r\n \"&numero=\" + NumeroNota +\r\n \"&chave=\" + ChaveValidacao;\r\n\r\n window.open(url, \"_blank\");\r\n $rootScope.loading = false;\r\n };\r\n\r\n function fnAfterXMLNfe (data) {\r\n $rootScope.loading = false;\r\n var blob = new Blob([data.xml], { type: 'application/xml' });\r\n var a = document.createElement('a');\r\n a.href = window.URL.createObjectURL(blob);\r\n a.download = $scope.invoiceNumber + '.xml';\r\n document.body.appendChild(a);\r\n a.click();\r\n };\r\n\r\n function fnAfterCSP (response) {\r\n // Somente para o Brasil\r\n if (response.csp === \"Error\" || response.csp === undefined) {\r\n SweetAlertFactory.showTranslation('ErrorCSP');\r\n } else {\r\n var a = document.createElement('a');\r\n a.href = response.csp;\r\n // PDF para Brasil e XLS para os demais CodERPs.\r\n a.download = $rootScope.user.CodERP === 1 ? 'ConsumoCSP.pdf' : 'ConsumoCSP.xls';\r\n document.body.appendChild(a);\r\n a.click();\r\n }\r\n \r\n $rootScope.loading = false;\r\n };\r\n \r\n // Modal\r\n $scope.openNfeModal = function (evt, nfe) {\r\n var locals = { \r\n nfe: nfe\r\n };\r\n $modalInvoiceFactory.detalhesNfe(evt, locals, function () {});\r\n };\r\n\r\n function openCommissionBatchSuccessModal (commissionGroup) {\r\n var locals = { commissionBatchName: commissionGroup };\r\n if ($codErp.Cala == $rootScope.user.CodERP || $codErp.Argentina == $rootScope.user.CodERP) {\r\n $modalInvoiceFactory.commissionBatchSuccessCalaArgentina(null, locals, function () { });\r\n } else {\r\n $modalInvoiceFactory.commissionBatchSuccess(null, locals, function () {});\r\n }\r\n };\r\n\r\n function openCommissionBatchMaxDateNoticeModal () {\r\n if ($codErp.Colombia == $rootScope.user.CodERP) {\r\n $modalInvoiceFactory.commissionBatchMaxDateColombiaNotice(null, {}, function () { });\r\n } else if ($codErp.Argentina == $rootScope.user.CodERP){\r\n $modalInvoiceFactory.commissionBatchMaxDateArgentinaNotice(null, {}, function () { });\r\n } else {\r\n $modalInvoiceFactory.commissionBatchMaxDateNotice(null, {}, function () { });\r\n }\r\n };\r\n\r\n function isEnableToCreateCommissionBatch (codErp) {\r\n var currentDay = (new Date()).getDate();\r\n var maxAllowedDay;\r\n if (codErp == $codErp.Colombia){\r\n //getMonth start in 0, and 0 = January\r\n maxAllowedDay = (new Date()).getMonth() != 11 ? 25 : 17;\r\n } else if (codErp == $codErp.Argentina) {\r\n maxAllowedDay = 27;\r\n }\r\n return currentDay < maxAllowedDay;\r\n }\r\n\r\n function openNoticeModal () {\r\n $modalInvoiceFactory.notice(null, {}, function () { });\r\n };\r\n\r\n function openBoletoModal (invoice, typeBankSlip) {\r\n var locals = { \r\n nf_banco: invoice.nfBanco,\r\n nf_nossoNumero: invoice.boletoNossoNumero,\r\n nf_CNPJ: invoice.endCustomerId,\r\n nf_vcto: invoice.invoiceMaxPaymentDate,\r\n typeBankSlip: typeBankSlip\r\n };\r\n $modalInvoiceFactory.boleto(null, locals, function () {});\r\n };\r\n\r\n // Parsers\r\n function XmlToObject (strXml) {\r\n return XmlToJson(StringToXMLDom(strXml));\r\n };\r\n\r\n function XmlToJson (xml) {\r\n try {\r\n var obj = {};\r\n if (xml.children.length > 0) {\r\n for (var i = 0; i < xml.children.length; i++) {\r\n var item = xml.children.item(i);\r\n var nodeName = item.nodeName;\r\n\r\n if (typeof (obj[nodeName]) == \"undefined\") {\r\n obj[nodeName] = XmlToJson(item);\r\n } else {\r\n if (typeof (obj[nodeName].push) == \"undefined\") {\r\n var old = obj[nodeName];\r\n\r\n obj[nodeName] = [];\r\n obj[nodeName].push(old);\r\n }\r\n obj[nodeName].push(XmlToJson(item));\r\n }\r\n }\r\n } else {\r\n obj = xml.textContent;\r\n }\r\n return obj;\r\n } catch (e) {\r\n console.error(e.message);\r\n }\r\n };\r\n\r\n function StringToXMLDom (string) {\r\n var xmlDoc = null;\r\n if (window.DOMParser) {\r\n var parser = new DOMParser();\r\n xmlDoc = parser.parseFromString(string, \"text/xml\");\r\n } else { \r\n var xmlDoc = new ActiveXObject(\"Microsoft.XMLDOM\");\r\n xmlDoc.async = \"false\";\r\n xmlDoc.loadXML(string);\r\n }\r\n return xmlDoc;\r\n };\r\n\r\n // Paginate\r\n $scope.nextPage = function (evt) {\r\n $scope.lastOffset = $scope.offset;\r\n $scope.offset = $scope.offset + $scope.limit;\r\n fnListByFilter();\r\n };\r\n\r\n $scope.prevPage = function (evt) {\r\n $scope.lastOffset = $scope.offset;\r\n $scope.offset = $scope.offset - $scope.limit;\r\n fnListByFilter();\r\n };\r\n\r\n $scope.hasNextPage = function (evt) {\r\n return $scope.offset + $scope.limit >= $scope.totalRows;\r\n };\r\n\r\n $scope.changeLimit = function (evt, limit) {\r\n $scope.limit = limit || $scope.limitOptions[0];\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n fnListByFilter();\r\n };\r\n\r\n $scope.onOrderBy = function (evt, column) {\r\n $scope.orderBy = column;\r\n $scope.ASC = !$scope.ASC;\r\n $scope.offset = 0;\r\n $scope.isCommissionBatch ? getCommissionBatchTitles() : fnListByFilter();\r\n };\r\n\r\n $scope.getIconOrderBy = function (column) {\r\n if ($scope.ASC === true && $scope.orderBy === column)\r\n return 'fa-sort-asc';\r\n else if ($scope.ASC === false && $scope.orderBy === column)\r\n return 'fa-sort-desc';\r\n else\r\n return '';\r\n };\r\n\r\n\r\n (function fnInit () {\r\n $scope.onResetFilter();\r\n fnResetSummary();\r\n $scope.isCommissionBatch ? getCommissionBatchTitles() : fnListByFilter();\r\n })();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.invoice')\r\n .controller('ResellerInvoiceCtrl', ResellerInvoiceCtrl);\r\n\r\n /** @ngInject */\r\n function ResellerInvoiceCtrl(\r\n $rootScope,\r\n $scope, \r\n $formatter,\r\n $helper,\r\n $session, \r\n $toastr,\r\n $codErp,\r\n $location,\r\n $modalInvoiceFactory,\r\n EndUserInvoiceAPI,\r\n ResellerInvoiceAPI, \r\n SweetAlertFactory,\r\n BankSlipAPI\r\n ) {\r\n\r\n $rootScope.loading = true;\r\n \r\n $scope.invoiceResellerActive = true;\r\n $scope.vcto_from = null;\r\n $scope.vcto_to = null;\r\n $scope.nfe = '';\r\n \r\n $scope.minTitleValue = 0;\r\n $scope.maxTitleValue = 100;\r\n \r\n $scope.propertyName = 'emissionDate';\r\n $scope.reverse = true;\r\n \r\n $scope.invoices = [];\r\n $scope.status = [];\r\n $scope.viewData = {};\r\n $scope.viewData.filtered = [];\r\n\r\n $scope.slider = {\r\n minValue: $scope.minTitleValue,\r\n maxValue: $scope.maxTitleValue,\r\n options: {\r\n id: 'slider-id',\r\n floor: $scope.minTitleValue,\r\n ceil: $scope.maxTitleValue,\r\n hideLimitLabels: true,\r\n translate: function (value) {\r\n return value\r\n }\r\n }\r\n };\r\n \r\n $scope.formatDate = $formatter.formatDate;\r\n $scope.formatDateTime = $formatter.formatDateTime;\r\n $scope.onlyDigits = $formatter.onlyDigits;\r\n\r\n\r\n $scope.sortBy = function(propertyName) {\r\n $scope.reverse = ($scope.propertyName === propertyName) ? !$scope.reverse : false;\r\n $scope.propertyName = propertyName;\r\n };\r\n\r\n $scope.FormatoData = $rootScope.getFormatoData();\r\n\r\n $scope.getLineClass = function (status) {\r\n status = status.toLowerCase();\r\n switch (status) {\r\n case 'liberada':\r\n return 'info';\r\n\r\n case 'em atraso':\r\n case 'vencida':\r\n return 'warning';\r\n\r\n case 'quitado':\r\n case 'pago':\r\n case 'al corriente':\r\n case 'paga':\r\n return 'success';\r\n\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n $scope.formatOV = function (value) {\r\n return !value ? 'N/A' : value;\r\n };\r\n\r\n $scope.onDownload = function (viewDataFiltered) {\r\n $rootScope.loading = true;\r\n ResellerInvoiceAPI.DownloadExcel({ titles: viewDataFiltered, culture: $session.get('locale') }, fnAfterDownload, $helper.throwException);\r\n };\r\n\r\n $scope.onDownloadInvoicePDF = function (invoiceNumber) {\r\n $rootScope.loading = true;\r\n ResellerInvoiceAPI.DownloadInvoicePdf({ invoiceNumber: invoiceNumber }, fnAfterDownload, $helper.throwException);\r\n };\r\n\r\n $scope.isPaymentInfoShowable = function (status) {\r\n var statusToShow = ['al corriente', 'vencida', 'vencida (pagada en parte)'];\r\n return statusToShow.includes(status.toLowerCase());\r\n };\r\n\r\n $scope.onDownloadBankSlip = function (evt, invoice) {\r\n $rootScope.loading = true;\r\n BankSlipAPI.GetBankSlip({ key: fnMakeBankSlipIdentifier(invoice) }, fnAfterGetBankSlip, $helper.throwException);\r\n };\r\n\r\n $scope.openCSPDetails = function (evt, invoice) {\r\n\r\n if (invoice.csp == 1 && [$codErp.Brasil, $codErp.Cala].includes($rootScope.user.CodERP)) {\r\n\r\n $location.path('/reseller-order/cspdetail');\r\n $location.search('titleUkey', invoice.ukey);\r\n }\r\n };\r\n\r\n $scope.onGetCSP = function (evt, key) {\r\n $rootScope.loading = true;\r\n EndUserInvoiceAPI.GetCSP({ key: key }, fnAfterCSP, $helper.throwException);\r\n };\r\n\r\n // Modal\r\n $scope.openPayNowModal = function (evt, invoice) {\r\n $modalInvoiceFactory.payNow(evt, {invoice: invoice}, function () { });\r\n };\r\n\r\n $scope.openSendReceiptModal = function (evt, invoice) {\r\n $modalInvoiceFactory.sendReceipt(evt, {invoice: invoice}, function () { });\r\n };\r\n\r\n $scope.openNfeModal = function (evt, nfe) {\r\n if ($scope.codERP === $codErp.Cala){\r\n $rootScope.loading = true;\r\n ResellerInvoiceAPI.GetNFeCALA({ key: nfe }, fnAfterNFeCALA, $helper.throwException);\r\n } else {\r\n $modalInvoiceFactory.detalhesNfe(evt, { nfe: nfe }, function () {});\r\n }\r\n };\r\n\r\n function openBoletoModal (invoice, typeBankSlip) {\r\n var locals = { \r\n // nf_banco: invoice.nfBanco,\r\n nf_banco: invoice.bank,\r\n nf_nossoNumero: invoice.boletoNossoNumero,\r\n nf_CNPJ: invoice.endCustomerId,\r\n nf_vcto: invoice.invoiceMaxPaymentDate,\r\n typeBankSlip: typeBankSlip\r\n };\r\n $modalInvoiceFactory.boleto(null, locals, function () {});\r\n };\r\n\r\n $scope.verifyDate = function (date){\r\n if ($scope.formatDate(date) > \"01/01/01\")\r\n return date;\r\n return \"\";\r\n }\r\n\r\n // Functions\r\n function fnAfterListInvoices (data) {\r\n if (!_.isEmpty(data)) {\r\n\r\n $scope.status = _.uniq(_.map(data, 'status'));\r\n\r\n $scope.invoices = data;\r\n \r\n $scope.maxTitleValue = Math.max.apply(Math, $scope.invoices.map(function (title) { return title.titleNetValue; }));\r\n $scope.minTitleValue = Math.min.apply(Math, $scope.invoices.map(function (title) { return title.titleNetValue; }));\r\n\r\n $scope.maxTitleValue = Math.ceil($scope.maxTitleValue);\r\n $scope.minTitleValue = Math.floor($scope.minTitleValue);\r\n\r\n //Range slider config\r\n $scope.slider = {\r\n minValue: $scope.minTitleValue,\r\n maxValue: $scope.maxTitleValue,\r\n options: {\r\n id: 'slider-id',\r\n floor: $scope.minTitleValue,\r\n ceil: $scope.maxTitleValue,\r\n hideLimitLabels: true,\r\n translate: function (value) {\r\n return data[0].currency + ' ' + value\r\n },\r\n onEnd: function (id, minValue, maxValue) {\r\n $scope.filterValue = function (order) {\r\n var value = parseFloat(order.value);\r\n var min = parseFloat(minValue);\r\n var max = parseFloat(maxValue);\r\n if (!value) {\r\n return false;\r\n }\r\n if (min && value < min) {\r\n return false;\r\n }\r\n if (max && value > max) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n }\r\n }\r\n };\r\n } else {\r\n\r\n $rootScope.loading = false;\r\n $toastr.infoTranslate('Invoice.AnyTitle');\r\n }\r\n\r\n $rootScope.loading = false;\r\n };\r\n\r\n function fnAfterDownload (response) {\r\n $rootScope.loading = false;\r\n \r\n if (response.success === false) {\r\n \r\n SweetAlertFactory.showTranslation(response.errorMessage);\r\n\r\n } else {\r\n \r\n window.open(baseApi + response.url, \"_blank \");\r\n }\r\n };\r\n\r\n function fnAfterCSP (response) {\r\n if (response.csp === \"Error\" || response.csp === undefined) {\r\n SweetAlertFactory.showTranslation('ErrorCSP');\r\n } else {\r\n var a = document.createElement('a');\r\n a.href = response.csp;\r\n // PDF para Brasil e XLS para os demais CodERPs.\r\n a.download = $rootScope.user.CodERP === 1 ? 'ConsumoCSP.pdf' : 'ConsumoCSP.xls';\r\n document.body.appendChild(a);\r\n a.click();\r\n }\r\n \r\n $rootScope.loading = false;\r\n };\r\n\r\n function fnAfterNFeCALA (response) {\r\n if (response.nfe === \"Error\" || response.nfe === undefined) {\r\n SweetAlertFactory.showTranslation('ErrorFactura');\r\n } else {\r\n var a = document.createElement('a');\r\n a.href = response.nfe;\r\n // PDF para CALA.\r\n a.download = 'Factura.pdf';\r\n document.body.appendChild(a);\r\n a.click();\r\n }\r\n \r\n $rootScope.loading = false;\r\n };\r\n\r\n function fnAfterGetBankSlip (response) {\r\n $rootScope.loading = false; \r\n\r\n if (response.bankSlip == \"notgenerated\" || !response.bankSlip) {\r\n openBoletoModal(invoice, \"notgenerated\");\r\n\r\n } else if (response.bankSlip == \"getintouch\") {\r\n $scope.typeBankSlip = \"getintouch\";\r\n openBoletoModal({}, \"getintouch\");\r\n\r\n }\r\n else {\r\n var a = document.createElement('a');\r\n a.href = response.bankSlip;\r\n a.download = 'bankSlip.pdf';\r\n document.body.appendChild(a);\r\n a.click();\r\n \r\n fnSaveLog(invoice);\r\n }\r\n };\r\n\r\n function fnSaveLog (invoice) {\r\n var params = {\r\n BankSlipIdentifier: fnMakeBankSlipIdentifier(invoice),\r\n IpAddress: $rootScope.ipAddress\r\n };\r\n \r\n DownloadBankSlipLogFactory.saveLog(\r\n params,\r\n function (response) {\r\n fnAfterSaveLog(invoice);\r\n },\r\n $helper.throwException\r\n );\r\n };\r\n\r\n function fnMakeBankSlipIdentifier(invoice) {\r\n return invoice.boletoParcelUkey;\r\n };\r\n\r\n function fnAfterSaveLog (invoice) {\r\n DownloadBankSlipLogFactory.ListBy({ bankSlipIdentifier: fnMakeBankSlipIdentifier(invoice) }, fnAfterListBankSlipLog, $helper.throwException);\r\n return invoice;\r\n };\r\n\r\n function fnAfterListBankSlipLog (response) {\r\n invoice.logs = response.lstDownloadBankSlipLog;\r\n };\r\n\r\n\r\n (function fnInit () {\r\n ResellerInvoiceAPI.ListAll(fnAfterListInvoices, $helper.throwException);\r\n })();\r\n }\r\n})();\r\n\n(function () {\r\n\t'use strict';\r\n\r\n\tangular.module('my.pages.dashboard')\r\n\t.controller('BlueskyPortalCtrl', BlueskyPortalCtrl);\r\n\r\n\t/** @ngInject */\r\n\tfunction BlueskyPortalCtrl (\r\n $encryption,\r\n $rootScope,\r\n $location,\r\n EnubeAPI,\r\n $helper,\r\n $codErp,\r\n $scope,\r\n $sce,\r\n $codPais\r\n\t) {\r\n\r\n function fnGetPortalUrl () {\r\n\r\n window.blueskyBaseUrl = ENV === 'PROD' ? fnGetCloudSolvUrlProd() : fnGetCloudSolvUrlTesting();\r\n\r\n var portalUrl = window.blueskyBaseUrl;\r\n\r\n if ($rootScope.user.CodERP != $codErp.Brasil) {\r\n portalUrl += \"?clientId=\" + $rootScope.user.ClientId;\r\n portalUrl += \"&clientSecret=\" + $rootScope.user.Secret;\r\n } else {\r\n portalUrl += \"?u=\" + $rootScope.user.Login;\r\n portalUrl += \"&p=\" + btoa($encryption.decrypt($rootScope.user.Password));\r\n }\r\n\r\n $scope.portalUrl = $sce.trustAsResourceUrl(portalUrl);\r\n }\r\n\r\n function fnGetCloudSolvUrlProd() {\r\n var baseUrl = '';\r\n switch ($rootScope.user.CodERP) {\r\n case $codErp.Cala:\r\n switch($rootScope.user.CodPais) { // INTRA-3437\r\n case $codPais.Uruguai:\r\n baseUrl = 'https://cloudsolvssa-uru.cloudanalytics.me';\r\n break;\r\n case $codPais.Paraguai:\r\n baseUrl = 'https://cloudsolvssa-par.cloudanalytics.me';\r\n break;\r\n case $codPais.Bolivia:\r\n baseUrl = 'https://cloudsolvssa-upb.cloudanalytics.me';\r\n break;\r\n default:\r\n baseUrl = 'https://cloudsolvssa-cca.cloudanalytics.me';\r\n break;\r\n }\r\n break;\r\n case $codErp.Colombia:\r\n baseUrl = 'https://cloudsolvssa-col.cloudanalytics.me';\r\n break;\r\n case $codErp.Peru:\r\n baseUrl = 'https://cloudsolvssa-per.cloudanalytics.me';\r\n break;\r\n case $codErp.Equador:\r\n baseUrl = 'https://cloudsolvssa-ecu.cloudanalytics.me';\r\n break;\r\n case $codErp.Argentina:\r\n baseUrl = 'https://cloudsolvssa-arg.cloudanalytics.me';\r\n break;\r\n case $codErp.Chile:\r\n baseUrl = 'https://cloudsolvssa-chi.cloudanalytics.me';\r\n break;\r\n default: //Brasil\r\n baseUrl = 'https://cloudsolvssa.cloudanalytics.me';\r\n }\r\n\r\n return baseUrl;\r\n }\r\n\r\n function fnGetCloudSolvUrlTesting () {\r\n\r\n var baseUrl = '';\r\n \r\n switch ($rootScope.user.CodERP) {\r\n case $codErp.Cala:\r\n switch($rootScope.user.CodPais) {\r\n case $codPais.Uruguai:\r\n baseUrl = 'https://ssacca-dev.cloudanalytics.me'; //URL de testes para CALA, nĆ£o temos especificas para os paĆ­ses\r\n break;\r\n case $codPais.Paraguai:\r\n baseUrl = 'https://ssacca-dev.cloudanalytics.me';\r\n break;\r\n case $codPais.Bolivia:\r\n baseUrl = 'https://ssacca-dev.cloudanalytics.me';\r\n break;\r\n default:\r\n baseUrl = 'https://ssacca-dev.cloudanalytics.me';\r\n break;\r\n }\r\n break;\r\n case $codErp.Colombia:\r\n baseUrl = 'https://ssacol-dev.cloudanalytics.me';\r\n break;\r\n case $codErp.Peru:\r\n baseUrl = 'https://ssaper-dev.cloudanalytics.me';\r\n break;\r\n case $codErp.Equador:\r\n baseUrl = 'https://ssaecu-dev.cloudanalytics.me';\r\n break;\r\n case $codErp.Argentina:\r\n baseUrl = 'https://ssaarg-dev.cloudanalytics.me';\r\n break;\r\n case $codErp.Chile:\r\n baseUrl = 'https://ssachi-dev.cloudanalytics.me';\r\n break;\r\n default: //Brasil\r\n baseUrl = 'https://ssa-dev.cloudanalytics.me';\r\n }\r\n\r\n return baseUrl;\r\n }\r\n\r\n function fnAfterIntegrationSuccess(response) {\r\n\r\n $rootScope.loading = false;\r\n\r\n $rootScope.user.ClientId = response.clientId;\r\n $rootScope.user.Secret = response.secret;\r\n\r\n fnGetPortalUrl();\r\n }\r\n\r\n function fnAfterIntegrationFailure() {\r\n\r\n $helper.throwException(arguments);\r\n\r\n $location.path('/');\r\n }\r\n\r\n (function fnInit () {\r\n\r\n if ($rootScope.user) {\r\n \r\n $rootScope.loading = true;\r\n\r\n EnubeAPI.integrate({userId: $rootScope.user.UserId}, fnAfterIntegrationSuccess, fnAfterIntegrationFailure);\r\n\r\n } else {\r\n\r\n $location.path('/');\r\n\r\n }\r\n })();\r\n\t}\r\n})();\r\n\n(function () {\r\n\t'use strict';\r\n\r\n\tangular.module('my.pages.dashboard')\r\n\t.controller('DashCtrl', DashCtrl);\r\n\r\n\t/** @ngInject */\r\n\tfunction DashCtrl (\r\n\t\t$rootScope,\r\n\t\t$scope,\r\n\t\t$banners,\r\n\t\t$menu,\r\n\t\t$session\r\n\t) {\r\n $scope.slides = [];\r\n\r\n\t\t$scope.myInterval = 5000;\r\n\r\n\t $scope.noWrapSlides = false;\r\n\t $scope.active = 0;\r\n\r\n $scope.menu = $menu.get();\r\n\r\n\t\t$scope.user = {};\r\n\t\t$scope.recover = {};\r\n\r\n function fnSetBanners (locale, callback) {\r\n\r\n $scope.slides = $banners.get(locale);\r\n\r\n if (typeof callback === 'function') callback();\r\n }\r\n\r\n\t\tfunction fnInit () {\r\n\t\t\t$rootScope.loading = true;\r\n fnSetBanners($session.get('locale'), function () {\r\n $rootScope.loading = false;\r\n });\r\n\t\t}\r\n\r\n $rootScope.$on('Dashboard_Reload', fnInit);\r\n\r\n\t\tfnInit();\r\n\t}\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.online-stock')\r\n .controller('OnlineStockCtrl', OnlineStockCtrl);\r\n\r\n /** @ngInject */\r\n function OnlineStockCtrl (\r\n $rootScope,\r\n $scope,\r\n $session,\r\n $helper,\r\n $states,\r\n $skuType,\r\n ProductAPI,\r\n SweetAlertFactory,\r\n $translate,\r\n $codErp\r\n ) {\r\n\r\n var allStates = $states.List();\r\n\r\n $scope.individualSearch = true;\r\n $scope.searchByPartnumber = true;\r\n\r\n // Codigo do Fator\r\n $scope.manufacturer = '';\r\n // Codigo Vendor tblVendor\r\n $scope.codVendor = '';\r\n $scope.skuType = 0;\r\n $scope.fatorVendorList = [];\r\n $scope.stockItemList = [];\r\n $scope.priceInfo = {};\r\n\r\n $scope.directBilling = false;\r\n $scope.icms = false;\r\n $scope.onlyForNewOrderItems = false;\r\n\r\n $scope.skuTypeList = $skuType.List();\r\n\r\n $scope.radioList = [\r\n { label: 'Yes', value: true },\r\n { label: 'No', value: false }\r\n ];\r\n\r\n // Paginate\r\n $scope.limitOptions = [100, 50, 20]\r\n $scope.limit = $scope.limitOptions[0];\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n $scope.totalRows = 0;\r\n\r\n $scope.changeDestinationStates = function (evt) {\r\n $scope.destinationStates = [];\r\n if ($scope.directBilling) {\r\n $scope.destinationStates = allStates;\r\n } else {\r\n $scope.destinationStates = $scope.priceInfo.destinationStates;\r\n }\r\n };\r\n\r\n $scope.applyFilter = function (frm) {\r\n if (frm.$invalid) {\r\n\r\n var keys = frm.$error.required.map(function (field) {\r\n field.$setDirty(true);\r\n switch (field.$name) {\r\n case 'homeState': \r\n return 'BillingSourceIsRequired';\r\n case 'destinationState': \r\n return 'BillingTargetIsRequired';\r\n }\r\n });\r\n \r\n keys.unshift('InvalidForm');\r\n SweetAlertFactory.showTranslationLote(keys);\r\n\r\n } else {\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n if ($scope.query == undefined || $scope.query == 'undefined') $scope.query = '';\r\n fnListByFilter(); \r\n }\r\n };\r\n\r\n $scope.onChangeManufacturer = function (evt) {\r\n var list = $scope.priceInfo.allowedManufacturers.filter(function (v) { return v.code == $scope.manufacturer });\r\n if (list.length > 0) $scope.codVendor = list[0].code ? list[0].name : null;\r\n };\r\n\r\n $scope.isOnlyForNewOrders = function (item) {\r\n if (item.manufacturer.toLowerCase().startsWith('cisco') && item.partnumber.toLowerCase().startsWith('con-')){\r\n $scope.onlyForNewOrderItems = true;\r\n return true;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n function fnListByFilter () {\r\n $rootScope.loading = true;\r\n var filter = {\r\n offset: $scope.offset, \r\n limit: $scope.limit,\r\n query: encodeURIComponent($scope.query),\r\n inStock: $scope.inStock,\r\n manufacturer: $scope.manufacturer,\r\n codVendor: $scope.codVendor,\r\n homeState: $scope.homeState,\r\n destinationState: $scope.destinationState,\r\n directBilling: $scope.directBilling,\r\n icms: $scope.icms,\r\n type: $scope.skuType,\r\n locale: $session.get('locale'),\r\n individualSearch: $scope.individualSearch,\r\n searchByPartnumber: $scope.searchByPartnumber\r\n };\r\n\r\n ProductAPI.ListStockItems(filter, afterListItemsStock, $helper.throwException);\r\n }\r\n\r\n function afterListItemsStock (response) {\r\n $scope.stockItemList = [];\r\n\r\n if (response.totalRows > 0) {\r\n $scope.totalRows = response.totalRows;\r\n $scope.stockItemList = response.stockItemList;\r\n } else {\r\n $scope.stockItemList = [];\r\n SweetAlertFactory.showTranslation('stock.anyResult');\r\n }\r\n \r\n $scope.onlyForNewOrderItems = false;\r\n $rootScope.loading = false;\r\n }\r\n\r\n function fnAfterGetPriceInfo (response) {\r\n $scope.priceInfo = response;\r\n $scope.changeDestinationStates();\r\n\r\n $rootScope.loading = false;\r\n }\r\n\r\n // Paginate\r\n $scope.nextPage = function (evt) {\r\n $scope.lastOffset = $scope.offset;\r\n $scope.offset = $scope.offset + $scope.limit;\r\n fnListByFilter();\r\n };\r\n\r\n $scope.prevPage = function (evt) {\r\n $scope.lastOffset = $scope.offset;\r\n $scope.offset = $scope.offset - $scope.limit;\r\n fnListByFilter();\r\n };\r\n\r\n $scope.hasNextPage = function (evt) {\r\n return $scope.offset + $scope.limit >= $scope.totalRows;\r\n };\r\n\r\n $scope.changeLimit = function (evt, limit) {\r\n $scope.limit = limit || $scope.limitOptions[0];\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n fnListByFilter();\r\n };\r\n\r\n $scope.showTextNoPriceTax = function () {\r\n return $rootScope.user.CodERP == $codErp.Argentina;\r\n };\r\n\r\n $scope.refreshIndividualSearchLabel = function () {\r\n if ($scope.searchByPartnumber){\r\n $translate('BuscaIndividualLabel.Partnumber').then(function (translation) {\r\n $scope.individualSearchLabel = translation;\r\n });\r\n } else {\r\n $translate('BuscaIndividualLabel.Descricao').then(function (translation) {\r\n $scope.individualSearchLabel = translation;\r\n });\r\n }\r\n };\r\n\r\n\r\n (function fnInit () {\r\n $rootScope.loading = true;\r\n $scope.refreshIndividualSearchLabel();\r\n ProductAPI.GetPriceInformation(fnAfterGetPriceInfo, $helper.throwException);\r\n })();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.manage-users')\r\n .controller('ManageCreditCardsCtrl', ManageCreditCardsCtrl);\r\n\r\n /** @ngInject */\r\n function ManageCreditCardsCtrl (\r\n $rootScope,\r\n $scope,\r\n $helper,\r\n $mdDialog,\r\n $translate,\r\n SweetAlertFactory,\r\n UserAPI,\r\n CreditCardAPI\r\n ) {\r\n\r\n // App\r\n $scope.filter = { userGroupId: 0 };\r\n $scope.module = 'cards';\r\n $scope.cardList = [];\r\n $scope.userLst = [];\r\n $scope.userGroupList = [];\r\n \r\n /// Paginate\r\n $scope.limitOptions = [10, 25, 50, 75, 100]\r\n $scope.limit = $scope.limitOptions[0];\r\n\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n $scope.exibitionCount = 0;\r\n $scope.userCount = 0;\r\n\r\n $scope.nextPage = function (evt) {\r\n $scope.lastOffset = $scope.offset;\r\n $scope.offset = $scope.offset + $scope.limit;\r\n $scope.applyFilter(false);\r\n };\r\n\r\n $scope.prevPage = function (evt) {\r\n $scope.lastOffset = $scope.offset;\r\n $scope.offset = $scope.offset - $scope.limit;\r\n $scope.applyFilter(false);\r\n };\r\n\r\n $scope.hasNextPage = function (evt) {\r\n return $scope.offset + $scope.limit >= $scope.userCount;\r\n };\r\n\r\n $scope.changeLimit = function (evt, limit) {\r\n $scope.limit = limit;\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n $scope.applyFilter(true);\r\n };\r\n /// End Paginate\r\n\r\n $scope.applyFilter = function (reset) {\r\n if (reset) $scope.offset = 0; \r\n $scope.filter.limit = $scope.limit;\r\n $scope.filter.offset = $scope.offset;\r\n fnListByFilter();\r\n }\r\n\r\n $scope.onShowDialog = function (evt, card) {\r\n $mdDialog.show({\r\n controller: 'ManageCreditCardsModalCtrl',\r\n templateUrl: 'app/pages/manage-users/partials/credit-cards-modal/index.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n locals: {\r\n card: card\r\n }\r\n }).then(function(needreload) {\r\n $rootScope.loading = false;\r\n if (needreload) $scope.applyFilter(true);\r\n });\r\n };\r\n\r\n $scope.confirmRemove = function (ukeyCartao) {\r\n $translate('Cards.ConfirmDelete').then(function (translation) { \r\n SweetAlertFactory.showConfirm(\r\n translation,\r\n function (confirm) { \r\n if (confirm) {\r\n fnRemove(ukeyCartao); \r\n }\r\n }\r\n );\r\n });\r\n };\r\n\r\n function fnInit () {\r\n fnListByFilter()\r\n }\r\n \r\n function fnListByFilter () {\r\n CreditCardAPI.GetReport({ CodUsuario: $rootScope.user.UserId }, function (response) {\r\n $scope.cardList = response.list\r\n var filteredCards = $scope.cardList.filter(function(obj) { \r\n return obj.bandera.toLowerCase().includes($scope.filter.query.toLowerCase().trim()) \r\n || (obj.nombre || obj.apellido).toLowerCase().includes($scope.filter.query.toLowerCase().trim()) ;\r\n })\r\n fnAfterListCards(filteredCards);\r\n }, $helper.throwException);\r\n }\r\n\r\n $scope.setDefaultCard = function (card) {\r\n if (card.default === 1) {\r\n return;\r\n }\r\n \r\n $rootScope.loading = true;\r\n CreditCardAPI.SetDefault({ encrypted: \"\", codUsuario: $rootScope.user.UserId, codERP: 0, ukeyCartao: card.ukeycartao }, fnAfterSetDefault, $helper.throwException);\r\n\r\n function fnAfterSetDefault (response) { \r\n $rootScope.loading = false;\r\n \r\n if (response.success === false) {\r\n \r\n SweetAlertFactory.showTranslation(response.errorMessage);\r\n fnListByFilter()\r\n \r\n } else {\r\n angular.forEach($scope.cardList, function (item) {\r\n item.default = item === card ? 1 : 0;\r\n })\r\n SweetAlertFactory.showTranslationWithFinally(\r\n 'Card.SuccessSetDefault',\r\n function () { $scope.applyFilter(true) }\r\n );\r\n }\r\n }\r\n }\r\n\r\n function fnAfterRemove (response) { \r\n $rootScope.loading = false;\r\n\r\n if (response.success === false) {\r\n\r\n SweetAlertFactory.showTranslation(response.errorMessage);\r\n fnListByFilter()\r\n\r\n } else {\r\n\r\n SweetAlertFactory.showTranslationWithFinally(\r\n 'Card.SuccessDelete',\r\n function () { $scope.applyFilter(true) }\r\n );\r\n }\r\n }\r\n\r\n function fnRemove (ukeyCartao) {\r\n $rootScope.loading = true; \r\n CreditCardAPI.Delete({ encrypted: \"\", codUsuario: $rootScope.user.UserId, codERP: 0, ukeyCartao: ukeyCartao }, fnAfterRemove, $helper.throwException);\r\n }\r\n\r\n function fnAfterListCards(response) {\r\n $rootScope.loading = false;\r\n if (response.sucesso === false || response.success === false) {\r\n $helper.throwException(response);\r\n } else {\r\n $scope.cardList = response;\r\n }\r\n }\r\n\r\n fnInit();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n \r\n angular.module('my.pages.manage-users')\r\n .controller('ManageCreditCardsModalCtrl', ManageCreditCardsModalCtrl);\r\n \r\n /** @ngInject */\r\n function ManageCreditCardsModalCtrl (\r\n $rootScope,\r\n $scope,\r\n $helper,\r\n $mdDialog,\r\n $translate,\r\n locals,\r\n SweetAlertFactory,\r\n CreditCardAPI,\r\n EnderecoAPI,\r\n filterFilter,\r\n $encryption\r\n ) {\r\n \r\n $scope.onClose = $mdDialog.hide;\r\n \r\n $scope.userLogged = $rootScope.user;\r\n $scope.isAllowed = $rootScope.isAllowed;\r\n\r\n $scope.viewDataFiltered = [];\r\n $scope.address = []; \r\n \r\n $scope.isModal = true;\r\n $scope.isUpdate = false;\r\n $scope.card = {};\r\n $scope.franquias = [{ name: 'Visa', value: '001' }, { name: 'Mastercard', value: '002' }, { name:'American Express', value: '003' }];\r\n $scope.months = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];\r\n $scope.years = getNextTenYears()\r\n\r\n $scope.states = [];\r\n\r\n $scope.queryState = function (query) { return filterFilter($scope.states, { name: query }) };\r\n $scope.queryCity = function (query) { return filterFilter($scope.cities, { name: query }) }; \r\n\r\n var resetCity = function (callback) {\r\n $scope.address.billCity = null;\r\n $scope.cities = [];\r\n typeof callback === 'function' ? callback() : null;\r\n };\r\n\r\n $scope.getCountryUkey = function(evt) {\r\n $scope.states = [];\r\n var params = { codErp: $rootScope.user.CodERP, term: $scope.address.billCountry };\r\n EnderecoAPI.listCountries(params, $scope.getStates, $helper.throwException);\r\n }\r\n\r\n $scope.getStates = function(data) {\r\n $scope.countryUkey = data[0].westconCode\r\n $scope.states = EnderecoAPI.listStates({ codErp: $rootScope.user.CodERP, countryId: $scope.countryUkey }, function (data) { $scope.states = data }, $helper.throwException);\r\n }\r\n\r\n $scope.selectState = function (state) {\r\n if (!_.isEmpty(state)) {\r\n $scope.searchCity(state);\r\n } else {\r\n resetCity();\r\n }\r\n }\r\n\r\n $scope.searchCity = function (state, callback) {\r\n if (!_.isEmpty(state)) {\r\n var stateId = state.westconCode;\r\n EnderecoAPI.listCities({ codErp: $rootScope.user.CodERP, stateId: stateId }, function (data) {\r\n $scope.cities = data;\r\n typeof callback === 'function' ? callback() : null;\r\n }, $helper.throwException);\r\n } else {\r\n $scope.company.city = null;\r\n $scope.cities = [];\r\n }\r\n };\r\n \r\n function getNextTenYears() {\r\n var currentYear = new Date().getFullYear();\r\n var years = [];\r\n \r\n for (var i = 0; i < 10; i++) {\r\n years.push((currentYear + i).toString());\r\n }\r\n \r\n return years;\r\n }\r\n\r\n if (!_.isEmpty(locals.card)) {\r\n $scope.isUpdate = true;\r\n $scope.card = locals.card;\r\n\r\n }\r\n \r\n $scope.onSave = function (evt) {\r\n if ($scope.formManageCards.$invalid) {\r\n SweetAlertFactory.showTranslation('Users.InvalidForm');\r\n } else if (!isValidDate()) {\r\n SweetAlertFactory.showTranslation('InvalidDate');\r\n } else if (!verifyEmail($scope.card.emailAddress)) {\r\n SweetAlertFactory.showTranslation('InvalidEmail');\r\n } else {\r\n $scope.card.billCountry = $scope.address.billCountry;\r\n $scope.card.billCountryUkey = $scope.countryUkey || \"\";\r\n $scope.card.billStateUkey = $scope.address && $scope.address.billState ? $scope.address.billState.westconCode : \"\";\r\n $scope.card.billState = $scope.address && $scope.address.billState ? $scope.address.billState.name : \"\";\r\n $scope.card.billCityUkey = $scope.address && $scope.address.billCity ? $scope.address.billCity.westconCode : \"\";\r\n $scope.card.billCity = $scope.address && $scope.address.billCity ? $scope.address.billCity.name : \"\";\r\n $rootScope.loading = true;\r\n CreditCardAPI.Create({ encrypted: $encryption.AESEncrypt(JSON.stringify($scope.card)), codUsuario: $rootScope.user.UserId, codERP: $rootScope.user.CodERP }, fnAfterSave, $helper.throwException);\r\n }\r\n }\r\n\r\n function verifyEmail (email) {\r\n var EMAIL_REGEXP = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$/;\r\n if (!email) {\r\n return false;\r\n }\r\n return EMAIL_REGEXP.test(email);\r\n } \r\n\r\n function fnAfterSave (response) {\r\n $rootScope.loading = false;\r\n\r\n if (response.success === false) {\r\n\r\n $translate(response.errorMessage)\r\n .then(function (message) {\r\n message = message.replace('@login', $scope.user.login);\r\n message = message.replace('@email', $scope.user.email);\r\n SweetAlertFactory.show(message);\r\n })\r\n .catch(function (e) {\r\n console.error(e);\r\n SweetAlertFactory.showTranslation(\"InternalServerCardError\");\r\n });\r\n } else {\r\n \r\n $scope.onClose(true);\r\n\r\n SweetAlertFactory.showTranslationLote(\r\n [ 'Card.SuccessInsertCard' ]);\r\n }\r\n }\r\n\r\n function isValidDate () {\r\n if ($scope.card.cardExpirYear == new Date().getFullYear() && $scope.card.cardExpirMonth <= new Date().getMonth()){\r\n\r\n $scope.card.cardExpirMonth = '';\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n $scope.formatName = function (propertyName) {\r\n $scope.card[propertyName] = $scope.card[propertyName].replace(/[^a-zA-Z\\s]/g, '');\r\n }\r\n\r\n $scope.formatNumber = function (propertyName) {\r\n $scope.card[propertyName] = $scope.card[propertyName].replace(/\\D/g, '');\r\n }\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.manage-users')\r\n .controller('ManageUsersFormCtrl', ManageUsersFormCtrl);\r\n\r\n /** @ngInject */\r\n function ManageUsersFormCtrl (\r\n $rootScope,\r\n $scope,\r\n $helper,\r\n AccessGroupAPI,\r\n SweetAlertFactory,\r\n UserAPI\r\n ) {\r\n\r\n $scope.userLogged = $rootScope.user;\r\n\r\n $scope.isModal = false;\r\n $scope.isUpdate = true;\r\n $scope.module = 'form';\r\n $scope.user = {};\r\n $scope.userGroupList = [];\r\n\r\n AccessGroupAPI.query(function (response) {\r\n $scope.userGroupList = response.accessGroups;\r\n }, $helper.throwException);\r\n\r\n $scope.onSave = function (evt) {\r\n if ($scope.formManageUsers.$invalid) {\r\n\r\n SweetAlertFactory.showTranslation('Users.InvalidForm');\r\n\r\n } else if ($scope.user.login.indexOf(' ') >= 0 || $scope.user.login.indexOf('@') >= 0) {\r\n\r\n SweetAlertFactory.showTranslation('Users.InvalidLogin');\r\n\r\n } else {\r\n\r\n $rootScope.loading = true;\r\n UserAPI.update($scope.user, fnAfterSave, $helper.throwException);\r\n }\r\n };\r\n\r\n function fnAfterSave (response) {\r\n $rootScope.loading = false;\r\n SweetAlertFactory.showTranslation('Users.SuccessUpdateUser');\r\n }\r\n\r\n function fnAfterGet (response) {\r\n $rootScope.loading = false;\r\n $scope.user = response;\r\n }\r\n\r\n (function fnInit () {\r\n $rootScope.loading = true;\r\n UserAPI.get({ id: $rootScope.user.UserId }, fnAfterGet, $helper.throwException);\r\n })();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.manage-users')\r\n .controller('ManageUsersListCtrl', ManageUsersListCtrl);\r\n\r\n /** @ngInject */\r\n function ManageUsersListCtrl (\r\n $rootScope,\r\n $scope,\r\n $helper,\r\n $mdDialog,\r\n $translate,\r\n SweetAlertFactory,\r\n AccessGroupAPI,\r\n UserAPI\r\n ) {\r\n\r\n // App\r\n $scope.filter = { userGroupId: 0 };\r\n $scope.module = 'list';\r\n $scope.userLst = [];\r\n $scope.userGroupList = [];\r\n\r\n $scope.getAccessGroupSlug = function (userGroupId) {\r\n return $scope.userGroupList.filter(function (v) { \r\n return v.accessGroupID == userGroupId;\r\n })[0].groupSlug;\r\n };\r\n \r\n /// Paginate\r\n $scope.limitOptions = [10, 25, 50, 75, 100]\r\n $scope.limit = $scope.limitOptions[0];\r\n\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n $scope.exibitionCount = 0;\r\n $scope.userCount = 0;\r\n\r\n $scope.nextPage = function (evt) {\r\n $scope.lastOffset = $scope.offset;\r\n $scope.offset = $scope.offset + $scope.limit;\r\n $scope.applyFilter(false);\r\n };\r\n\r\n $scope.prevPage = function (evt) {\r\n $scope.lastOffset = $scope.offset;\r\n $scope.offset = $scope.offset - $scope.limit;\r\n $scope.applyFilter(false);\r\n };\r\n\r\n $scope.hasNextPage = function (evt) {\r\n return $scope.offset + $scope.limit >= $scope.userCount;\r\n };\r\n\r\n $scope.changeLimit = function (evt, limit) {\r\n $scope.limit = limit;\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n $scope.applyFilter(true);\r\n };\r\n /// End Paginate\r\n\r\n $scope.applyFilter = function (reset) {\r\n if (reset) $scope.offset = 0; \r\n $scope.filter.limit = $scope.limit;\r\n $scope.filter.offset = $scope.offset;\r\n fnListByFilter();\r\n }\r\n\r\n $scope.onShowDialog = function (evt, user) {\r\n $mdDialog.show({\r\n controller: 'ManageUsersModalCtrl',\r\n templateUrl: 'app/pages/manage-users/partials/modal/index.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n locals: {\r\n user: user\r\n }\r\n }).then(function(needreload) {\r\n $rootScope.loading = false;\r\n if (needreload) $scope.applyFilter(true);\r\n });\r\n };\r\n\r\n $scope.confirmRemove = function (userId) {\r\n $translate('Users.ConfirmDelete').then(function (translation) { \r\n SweetAlertFactory.showConfirm(\r\n translation,\r\n function (confirm) { \r\n if (confirm) {\r\n fnRemove(userId); \r\n }\r\n }\r\n );\r\n });\r\n };\r\n\r\n function fnInit () {\r\n $rootScope.loading = true;\r\n\r\n AccessGroupAPI.query(function (response) {\r\n response.accessGroups.unshift({ \r\n accessGroupID: 0, groupSlug: 'userGroup.All' \r\n });\r\n $scope.userGroupList = response.accessGroups;\r\n\r\n $scope.applyFilter(true);\r\n \r\n }, $helper.throwException);\r\n }\r\n \r\n function fnListByFilter () {\r\n $rootScope.loading = true;\r\n UserAPI.list($scope.filter, fnAfterListUsers, $helper.throwException);\r\n }\r\n\r\n function fnAfterRemove (response) { \r\n $rootScope.loading = false;\r\n\r\n if (response.success === false) {\r\n\r\n SweetAlertFactory.showTranslation(response.errorMessage);\r\n\r\n } else {\r\n\r\n SweetAlertFactory.showTranslationWithFinally(\r\n 'Users.SuccessDelete',\r\n function () { $scope.applyFilter(true) }\r\n );\r\n }\r\n }\r\n\r\n function fnRemove (userId) {\r\n $rootScope.loading = true; \r\n UserAPI.delete({ id: userId }, fnAfterRemove, $helper.throwException);\r\n }\r\n\r\n function fnAfterListUsers (response) {\r\n $rootScope.loading = false;\r\n if (response.sucesso === false || response.success === false) {\r\n\r\n $helper.throwException(response);\r\n\r\n } else {\r\n $scope.userLst = response.userLst;\r\n $scope.userCount = response.totalRows;\r\n }\r\n }\r\n\r\n fnInit();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.manage-users')\r\n .controller('ManageUsersModalCtrl', ManageUsersModalCtrl);\r\n\r\n /** @ngInject */\r\n function ManageUsersModalCtrl (\r\n $rootScope,\r\n $scope,\r\n $helper,\r\n $filter,\r\n $mdDialog,\r\n $translate,\r\n $timeout,\r\n $toastr,\r\n AccessControlAPI,\r\n AccessGroupAPI,\r\n locals,\r\n SweetAlertFactory,\r\n UserAPI\r\n ) {\r\n\r\n var jsonUser = null;\r\n var trackBotPermissionName = 'Orders.TrackBot';\r\n\r\n $scope.onClose = $mdDialog.hide;\r\n\r\n $scope.userLogged = $rootScope.user;\r\n $scope.isAllowed = $rootScope.isAllowed;\r\n\r\n $scope.viewDataFiltered = [];\r\n $scope.permissionList = [];\r\n $scope.userPermissionList = [];\r\n\r\n $scope.isModal = true;\r\n $scope.isUpdate = false;\r\n $scope.user = {};\r\n $scope.userGroupList = [];\r\n\r\n AccessGroupAPI.query(function (response) {\r\n $scope.userGroupList = response.accessGroups;\r\n }, $helper.throwException);\r\n\r\n if (!_.isEmpty(locals.user)) {\r\n $scope.isUpdate = true;\r\n $scope.user = locals.user;\r\n\r\n /// INNO-2992 - Raviel Chausse Silveira\r\n jsonUser = JSON.stringify($scope.user);\r\n } \r\n\r\n $scope.onTabSelect = function (tabName) {\r\n if ($scope.isUpdate && tabName === 'permission' \r\n && jsonUser !== JSON.stringify($scope.user)) {\r\n\r\n $scope.tabSelected = 0;\r\n \r\n fnEmitNotify(\r\n function () {\r\n $rootScope.loading = true;\r\n\r\n UserAPI.update($scope.user, function (response) {\r\n fnAfterUpdate(response, fnToggleBetweenTabs);\r\n }, $helper.throwException);\r\n }, \r\n function () {\r\n $scope.user = JSON.parse(jsonUser);\r\n fnToggleBetweenTabs();\r\n });\r\n }\r\n };\r\n\r\n $scope.onNext = function (evt) {\r\n\r\n if ($scope.formManageUsers.$invalid) {\r\n\r\n SweetAlertFactory.showTranslation('Users.InvalidForm');\r\n\r\n } else if ($scope.user.login.indexOf(' ') >= 0 || $scope.user.login.indexOf('@') >= 0) {\r\n\r\n SweetAlertFactory.showTranslation('Users.InvalidLogin');\r\n\r\n } else {\r\n\r\n if ($scope.isUpdate) {\r\n\r\n $rootScope.loading = true;\r\n UserAPI.update($scope.user, fnAfterUpdate, $helper.throwException);\r\n\r\n } else {\r\n\r\n fnToggleBetweenTabs();\r\n }\r\n }\r\n };\r\n\r\n $scope.onGoBack = function (evt) {\r\n\r\n if ($scope.isUpdate) {\r\n\r\n $scope.onClose(false);\r\n\r\n } else {\r\n\r\n fnToggleBetweenTabs();\r\n }\r\n };\r\n\r\n $scope.onSave = function (evt) {\r\n \r\n if ($scope.formManageUsers.$invalid) {\r\n\r\n SweetAlertFactory.showTranslation('Users.InvalidForm');\r\n\r\n } else {\r\n\r\n if ($scope.isUpdate) {\r\n\r\n UserAPI.update($scope.user, fnAfterUpdate, $helper.throwException);\r\n\r\n } else {\r\n\r\n var $permissions = $('input[type=checkbox]:checked').not('#authorize');\r\n\r\n if ($permissions.length > 0) {\r\n\r\n var list = $permissions.map(function (i) {\r\n return $permissions[i].id.toString();\r\n }).toArray();\r\n\r\n $scope.user.permissions = [];\r\n\r\n list.forEach(function (id) {\r\n $scope.user.permissions.push({ permissionID: id });\r\n });\r\n }\r\n\r\n $rootScope.loading = true;\r\n $scope.user.culture = $scope.selectedLanguage;\r\n UserAPI.Create($scope.user, fnAfterSave, $helper.throwException);\r\n }\r\n }\r\n };\r\n\r\n /// Montagem das PermissƵes com as permissƵes do usuĆ”rio.\r\n $scope.onChecked = function (id) {\r\n return $scope.userPermissionList.filter(function (v) {\r\n return v.permissionID === id;\r\n }).length > 0\r\n };\r\n\r\n /// EdiĆ§Ć£o das permissƵes do usuĆ”rio.\r\n $scope.onClick = function (id) {\r\n if (!$scope.isUpdate) return;\r\n\r\n var element = document.getElementById(id);\r\n var $element = angular.element(element);\r\n\r\n var params = { \r\n userId: $scope.user.userId,\r\n permissionId: id \r\n };\r\n\r\n if ($element.is(':checked')) {\r\n\r\n if ($element[0].name === trackBotPermissionName && !$scope.user.cellphone) {\r\n SweetAlertFactory.showTranslation('Orders.TrackBot.CellphoneNeeded');\r\n $element[0].checked = false;\r\n return\r\n } else {\r\n SweetAlertFactory.showTranslation('Orders.TrackBot.CheckCellphone');\r\n \r\n AccessControlAPI.CreateUserPermissions(\r\n params,fnAfterRequest,$helper.throwException);\r\n }\r\n\r\n } else {\r\n\r\n AccessControlAPI.DeleteUserPermissions(\r\n params,fnAfterRequest,$helper.throwException);\r\n }\r\n };\r\n\r\n /// EdiĆ§Ć£o do grupo de permissƵes do usuĆ”rio.\r\n $scope.onChange = function (user) {\r\n \r\n if ($scope.isUpdate) {\r\n\r\n $rootScope.loading = true;\r\n\r\n AccessControlAPI.ChangeUserPermissions(\r\n user,\r\n function (response) {\r\n\r\n if (response.success === false) {\r\n\r\n $toastr.error('Ops...');\r\n } else {\r\n\r\n $toastr.success('OK');\r\n fnListByGroupId(user.userGroupId);\r\n }\r\n },\r\n $helper.throwException\r\n );\r\n\r\n } else {\r\n\r\n fnListByGroupId(user.userGroupId);\r\n }\r\n };\r\n\r\n function fnEmitNotify (confirmCallback, discardCallback) {\r\n $translate('Alert.ChangesInForm').then(function (message) {\r\n\r\n var icon = undefined\r\n , btnConfirmText = 'Alert.SaveAndContinue'\r\n , btnCancelText = 'Alert.ToDiscard';\r\n\r\n SweetAlertFactory.showConfirm(message, function (confirm) {\r\n confirm ? confirmCallback() : discardCallback();\r\n }, icon, btnConfirmText, btnCancelText);\r\n });\r\n }\r\n\r\n function fnAfterRequest () {\r\n $toastr.success('OK');\r\n }\r\n\r\n function fnAfterUpdate (response, callback) {\r\n if (JSON.parse(jsonUser).cellphone && !$scope.user.cellphone) {\r\n var trackBotElement = document.getElementsByName(trackBotPermissionName)[0];\r\n if (trackBotElement) trackBotElement.checked = false;\r\n } \r\n\r\n jsonUser = JSON.stringify($scope.user);\r\n $rootScope.loading = false;\r\n\r\n var fnFinally = typeof callback === 'function' \r\n ? callback : function () { $scope.onClose(true) };\r\n\r\n SweetAlertFactory.showTranslationWithFinally(\r\n 'Users.SuccessUpdateUser', fnFinally\r\n );\r\n }\r\n\r\n function fnAfterSave (response) {\r\n $rootScope.loading = false;\r\n\r\n if (response.success === false) {\r\n\r\n $translate(response.errorMessage)\r\n .then(function (message) {\r\n message = message.replace('@login', $scope.user.login);\r\n message = message.replace('@email', $scope.user.email);\r\n SweetAlertFactory.show(message);\r\n })\r\n .catch(function (e) {\r\n console.error(e);\r\n SweetAlertFactory.showTranslation(\"InternalServerError\");\r\n });\r\n } else {\r\n \r\n $scope.onClose(true);\r\n\r\n SweetAlertFactory.showTranslationLote(\r\n [ 'Users.SuccessInsertUser', 'Users.SuccessContextUser' ]);\r\n }\r\n }\r\n\r\n function fnAfterListByGroupId (response) {\r\n $rootScope.loading = false;\r\n $scope.userPermissionList = response.permissions;\r\n }\r\n\r\n function fnListByGroupId (groupId) {\r\n $rootScope.loading = true;\r\n\r\n AccessControlAPI.ListByGroupId(\r\n { groupId: groupId },\r\n fnAfterListByGroupId,\r\n $helper.throwException\r\n );\r\n }\r\n\r\n function fnAfterListPermissions (response) {\r\n $rootScope.loading = false;\r\n\r\n var slugList = response.permissions.map(function (v) { return v.slug });\r\n \r\n $translate(slugList).then(function (translations) {\r\n\r\n for (var i = 0; i < response.permissions.length; i++) {\r\n response.permissions[i].translation = translations[response.permissions[i].slug];\r\n }\r\n\r\n $scope.permissionList = $filter('orderBy')(response.permissions, 'translation');\r\n });\r\n }\r\n\r\n function fnListPermissions () {\r\n $rootScope.loading = true;\r\n AccessControlAPI.ListPermissions(fnAfterListPermissions, $helper.throwException);\r\n }\r\n\r\n function fnAfterGetUserPermissions (response) {\r\n $rootScope.loading = false;\r\n $scope.userPermissionList = response.permissions;\r\n }\r\n\r\n function fnGetUserPermissions () {\r\n $rootScope.loading = true;\r\n AccessControlAPI.GetUserPermissions(\r\n { userId: $scope.user.userId },\r\n fnAfterGetUserPermissions, \r\n $helper.throwException\r\n );\r\n }\r\n\r\n function fnToggleBetweenTabs () {\r\n $timeout(function(){\r\n $('md-tab-item').not('.md-active').click();\r\n })\r\n }\r\n\r\n fnListPermissions();\r\n\r\n if ($scope.isUpdate) {\r\n\r\n fnGetUserPermissions();\r\n }\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.manage-users')\r\n .controller('ManageUsersResellerCtrl', ManageUsersResellerCtrl);\r\n\r\n /** @ngInject */\r\n function ManageUsersResellerCtrl (\r\n $rootScope,\r\n $scope,\r\n $helper,\r\n CompanyAPI,\r\n $companyService,\r\n $companySituation\r\n ) {\r\n\r\n // Paginate\r\n $scope.limitOptions = [10, 25, 50, 75, 100]\r\n $scope.limit = $scope.limitOptions[0];\r\n\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n $scope.exibitionCount = 0;\r\n $scope.resellerCount = 0;\r\n\r\n // App\r\n $scope.filter = {};\r\n $scope.module = 'reseller';\r\n $scope.resellerLst = [];\r\n $scope.query = \"\";\r\n\r\n $scope.listReseller = function (reset) {\r\n $rootScope.loading = true;\r\n if (reset) $scope.offset = 0; \r\n $scope.filter.limit = $scope.limit;\r\n $scope.filter.offset = $scope.offset;\r\n $scope.filter.query = $scope.query;\r\n CompanyAPI.list($scope.filter, fnAfterListReseller, $helper.throwException);\r\n };\r\n\r\n $scope.getById = function (id) {\r\n return $companySituation.GetById(id);\r\n };\r\n\r\n $scope.onClickCNPJ = function (evt, reseller) {\r\n $rootScope.loading = true;\r\n $companyService.GetCompany(reseller.codERP, reseller.cnpj, fnAfterGetCompany)\r\n };\r\n\r\n function fnAfterGetCompany (company) {\r\n $rootScope.loading = false;\r\n $companyService.RegistryNextStep(company, true, false, true);\r\n };\r\n\r\n function fnAfterListReseller (data) {\r\n $rootScope.loading = false;\r\n $scope.resellerLst = data.companyLst;\r\n $scope.resellerCount = data.totalRows;\r\n };\r\n\r\n // Paginate\r\n $scope.nextPage = function (evt) {\r\n $scope.lastOffset = $scope.offset;\r\n $scope.offset = $scope.offset + $scope.limit;\r\n $scope.listReseller(false);\r\n };\r\n\r\n $scope.prevPage = function (evt) {\r\n $scope.lastOffset = $scope.offset;\r\n $scope.offset = $scope.offset - $scope.limit;\r\n $scope.listReseller(false);\r\n };\r\n\r\n $scope.hasNextPage = function (evt) {\r\n return $scope.offset + $scope.limit >= $scope.resellerCount;\r\n };\r\n\r\n $scope.changeLimit = function (evt, limit) {\r\n $scope.limit = limit;\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n $scope.listReseller(true);\r\n };\r\n\r\n (function fnInit () {\r\n $rootScope.loading = true;\r\n $scope.listReseller();\r\n })();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.powerbi')\r\n .controller('PowerBiCtrl', PowerBiCtrl);\r\n\r\n /** @ngInject */\r\n function PowerBiCtrl(\r\n PowerBiFactory,\r\n $rootScope,\r\n $scope, \r\n $auth,\r\n $helper,\r\n $pbi\r\n ) { \r\n\r\n /// INNO-2389 - Raviel Chausse Silveira\r\n $scope.toggleFullscreen = $pbi.toggleFullscreen;\r\n\r\n function fnInit () {\r\n $rootScope.loading = true;\r\n PowerBiFactory.acquireToken($pbi.startPowerBI, $helper.throwException);\r\n }\r\n\r\n fnInit();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.price-list')\r\n .controller('PriceListCtrl', PriceListCtrl);\r\n\r\n /** @ngInject */\r\n function PriceListCtrl (\r\n $rootScope,\r\n $scope,\r\n $session,\r\n $helper,\r\n $states,\r\n $skuType,\r\n SweetAlertFactory,\r\n ProductAPI\r\n ) {\r\n\r\n var allStates = $states.List();\r\n\r\n $scope.skuTypeList = $skuType.List();\r\n $scope.filter = { type: 0 };\r\n\r\n $scope.directBilling = false;\r\n $scope.icms = false;\r\n\r\n $scope.radioList = [\r\n { label: 'Yes', value: true },\r\n { label: 'No', value: false }\r\n ];\r\n\r\n $scope.changeDestinationStates = function (evt) {\r\n $scope.destinationStates = [];\r\n if ($scope.directBilling) {\r\n $scope.destinationStates = allStates;\r\n } else {\r\n $scope.destinationStates = $scope.priceInfo.destinationStates;\r\n }\r\n };\r\n\r\n $scope.onChangeManufacturer = function (evt) {\r\n var list = $scope.priceInfo.allowedManufacturers.filter(function (v) { return v.code == $scope.manufacturer });\r\n if (list.length > 0) $scope.codVendor = list[0].name;\r\n };\r\n\r\n $scope.onSubmit = function (evt) {\r\n $rootScope.loading = true;\r\n\r\n var filter = {\r\n manufacturer: $scope.manufacturer,\r\n homeState: $scope.homeState,\r\n destinationState: $scope.destinationState,\r\n directBilling: $scope.directBilling,\r\n icms: $scope.icms,\r\n locale: $session.get('locale'),\r\n alternativeMail: $scope.alternativeEmails,\r\n type: $scope.filter.type\r\n };\r\n\r\n if (!$scope.manufacturer) {\r\n\r\n delete filter.codVendor;\r\n\r\n } else {\r\n \r\n var list = $scope.priceInfo.allowedManufacturers.filter(function (v) { return v.code == $scope.manufacturer });\r\n if (list.length > 0) {\r\n filter.manufacturerName = filter.codVendor = list[0].name;\r\n }\r\n }\r\n\r\n ProductAPI.GetPriceListData(filter,\r\n function (response) {\r\n $rootScope.loading = false;\r\n\r\n response = response;\r\n \r\n if (response.fileAlredyCreated) {\r\n window.open(baseApi + 'Product/PriceListDownload?requestId=' + response.requestId, \"_blank\");\r\n } else {\r\n SweetAlertFactory.showTranslation('PriceList.Message'); \r\n }\r\n },\r\n $helper.throwException\r\n );\r\n };\r\n\r\n function fnAfterGetPriceInfo (response) {\r\n $scope.priceInfo = response;\r\n $scope.changeDestinationStates();\r\n $rootScope.loading = false;\r\n };\r\n \r\n\r\n (function fnInit () {\r\n $rootScope.loading = true;\r\n ProductAPI.GetPriceInformation(fnAfterGetPriceInfo, $helper.throwException);\r\n })();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.proposal')\r\n .controller('QuoteListCtrl', QuoteListCtrl); \r\n\r\n /** @ngInject */\r\n function QuoteListCtrl(\r\n $rootScope,\r\n $scope,\r\n $formatter,\r\n $helper,\r\n $location,\r\n QuoteAPI,\r\n SweetAlertFactory,\r\n $codErp\r\n ) {\r\n /// Paginate Config.\r\n $scope.pageSizeOptions = [20, 50, 100]\r\n $scope.paginated = {\r\n pageSize: $scope.pageSizeOptions[0],\r\n currentPage: 1,\r\n totalItems: 0\r\n };\r\n\r\n $scope.emptyQuoteList = false;\r\n $scope.formatDate = $formatter.formatDate;\r\n $scope.isRenewal = $location.url().endsWith('/renewal');\r\n $scope.quoteList = [];\r\n $scope.quarters = [];\r\n $scope.filter = {};\r\n $scope.codErp = $codErp;\r\n $scope.user = $rootScope.user;\r\n\r\n $scope.replaceCommaByBarN = function (str) {\r\n return (str || '').replace(/,/g, '\\n');\r\n }\r\n\r\n $scope.FormatoData = $rootScope.getFormatoData();\r\n\r\n // MĆ©todo chamado apĆ³s obter as Quotes.\r\n function fnAfterListQuotes (response) {\r\n\r\n $rootScope.loading = false;\r\n var paginated = response.paginated || {};\r\n\r\n if (paginated.totalItems === 0) {\r\n\r\n $scope.quoteList = [];\r\n $scope.quarters = [];\r\n $scope.emptyQuoteList = true;\r\n $scope.paginated = { totalItems: 0 };\r\n SweetAlertFactory.showTranslation('NoProposalFound');\r\n\r\n } else {\r\n\r\n $scope.paginated = paginated;\r\n $scope.quoteList = response.items;\r\n $scope.emptyQuoteList = false;\r\n\r\n if ($scope.isRenewal && response.quarters) {\r\n $scope.quarters = fnGetSummaryValues(response.quarters);\r\n }\r\n }\r\n };\r\n\r\n function fnGetSummaryValues (quarters) {\r\n quarters.unshift({\r\n totalQuoteValue: quarters.reduce(function(total, arr){ return total + arr.totalQuoteValue; }, 0), \r\n quarter: \"Total\"\r\n });\r\n return quarters;\r\n }\r\n \r\n $scope.loadData = function () {\r\n $rootScope.loading = true;\r\n\r\n Object.assign($scope.filter, $scope.paginated);\r\n $scope.filter.isRenewal = $scope.isRenewal;\r\n\r\n if(!$scope.filter.orderBy) $scope.filter.orderBy = \"DateQuote\"\r\n\r\n QuoteAPI.ListQuotes($scope.filter, fnAfterListQuotes, $helper.throwException);\r\n };\r\n \r\n $scope.orderBy = function (evt, column) {\r\n if($scope.filter.orderBy != column)\r\n $scope.filter.orderASC = true\r\n\r\n $scope.filter.orderBy = column;\r\n $scope.filter.orderASC = !$scope.filter.orderASC;\r\n \r\n $rootScope.loading = true;\r\n $scope.loadData();\r\n };\r\n\r\n // MĆ©todo que inicia o ciclo do aceite de pedido\r\n // Primeiro passo Ć© buscar a Proposta da rota.\r\n angular.element(document)\r\n .ready($scope.loadData);\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.quote')\r\n .controller('AcceptQuoteCalaCtrl', AcceptQuoteCalaCtrl);\r\n\r\n /** @ngInject */\r\n function AcceptQuoteCalaCtrl(\r\n $rootScope,\r\n $scope,\r\n $helper,\r\n $location,\r\n $modalQuote,\r\n $routeParams,\r\n $session,\r\n $translate,\r\n QuoteAPI,\r\n SweetAlertFactory,\r\n $codSalesOrderAddress\r\n ) {\r\n $scope._localPartials = 'app/pages/quote/partials';\r\n \r\n $scope.codERP = $rootScope.user.CodERP;\r\n $scope.codSalesOrderAddress = $codSalesOrderAddress;\r\n $scope.isDeclared = false;\r\n $scope.isExpired = false;\r\n $scope.newPaymentCondition = false;\r\n\r\n $scope.quote = {};\r\n $scope.options = [];\r\n // Objeto contendo endereƧo de faturamento e cobranƧa\r\n $scope.invoiceAddress = {};\r\n\r\n $scope.vrfHeader = [];\r\n \r\n // Lista que receberĆ” os contatos selecionados para receber NFe.\r\n $scope.selectedContacts = [];\r\n $scope.contacts = [];\r\n \r\n // Objeto que receberĆ” o contato criado atravĆ©s do portal.\r\n $scope.contact = {};\r\n \r\n // Objeto que receberĆ” a carga Ćŗtil da Proposta\r\n $scope.quotePayload = {};\r\n \r\n // Lista que receberĆ” os documentos do aceite da quote.\r\n $scope.documentTypes = [];\r\n $scope.quoteFiles = [];\r\n $scope.salesOrderId = null;\r\n\r\n // Objeto que receberĆ” as informaƧƵes do documento adicionado. \r\n $scope.quoteFile = {};\r\n\r\n $scope.sameEndUserAndBillingAddress = false;\r\n $scope.sameShipToAndBillingAddress = false;\r\n\r\n $scope.onGenerateSimulator = function (evt, id) {\r\n var browser = $helper.getBrowser();\r\n var popupUnblockLink = $helper.getPopupUnblockLink(browser);\r\n var div = document.createElement('div');\r\n var innerHTML = ''\r\n\r\n $translate(['YouWillBeRedirectedTo', 'PopupBlocked', 'PopupUnblockOn', 'Quote.QuoteSimulator'])\r\n .then(function (translations) {\r\n if (popupUnblockLink) {\r\n innerHTML = '
'\r\n innerHTML += translations['PopupUnblockOn'] + ' ' + browser + '';\r\n }\r\n div.innerHTML = translations['PopupBlocked'] + innerHTML\r\n\r\n SweetAlertFactory.showWithFinally(\r\n translations['Quote.QuoteSimulator'],\r\n function (confirm) {\r\n if (!confirm) return;\r\n $rootScope.loading = true;\r\n QuoteAPI.GenerateSimulator({ quoteId: id }, function (response) {\r\n $rootScope.loading = false;\r\n var url = baseApi + response.url;\r\n window.open(url, \"_blank\");\r\n }, $helper.throwException);\r\n },\r\n div\r\n );\r\n });\r\n };\r\n\r\n // MĆ©todo que remove um anexo adicionado na lista.\r\n $scope.onRemoveQuoteFile = function (evt, key) {\r\n $scope.quoteFiles = $scope.quoteFiles.filter(function (quoteFile) {\r\n return quoteFile.filekey != key;\r\n });\r\n };\r\n\r\n // Abre a modal de cadastro de contato.\r\n $scope.onAddDocuments = $modalQuote.showQuoteAddDocumentsModal;\r\n\r\n // Adiciona o contato na lista em memĆ³ria.\r\n $scope.addDocumentsCallback = function (quoteFile) {\r\n if (quoteFile) {\r\n $scope.quoteFiles.push(quoteFile);\r\n }\r\n };\r\n\r\n // Abre a modal de cadastro de contato.\r\n $scope.onNewContact = $modalQuote.showQuoteNewContactModal;\r\n\r\n // Adiciona o contato na lista em memĆ³ria.\r\n $scope.newContactCallback = function (contact) {\r\n if (contact) {\r\n $scope.contacts.push(contact);\r\n }\r\n };\r\n\r\n // MĆ©todo que envia o aceite de pedido para a Next.\r\n $scope.onSendAcceptQuote = function (evt) {\r\n if (evt) evt.preventDefault();\r\n\r\n if (fnValidateQuote()) {\r\n\r\n $rootScope.loading = true;\r\n\r\n fnSetQuotePayload();\r\n\r\n QuoteAPI.SendAcceptQuote($scope.quotePayload, fnAfterSendAcceptQuote, $helper.throwException);\r\n }\r\n };\r\n\r\n // Abre a modal de envio de e-mail.\r\n $scope.onShowQuoteSendEmailModal = function (evt) {\r\n fnSetQuotePayload();\r\n\r\n var locals = Object.assign({}, $scope.quotePayload);\r\n\r\n locals.portalUser = Object.assign({}, $scope.user);\r\n locals.contacts = $scope.contacts.filter(function (v) { return v.isSelected });\r\n\r\n $modalQuote.showQuoteSendEmailModal(evt, locals, console.info);\r\n };\r\n\r\n //$scope.$on('$localeChangeSuccess', function () { location.reload(); });\r\n\r\n // Abre a modal de tipos de documentos.\r\n $scope.onShowQuoteTypeDocumentsModal = $modalQuote.showQuoteTypeDocumentsModal;\r\n\r\n $scope.quoteTypeDocumentsCallback = console.info;\r\n\r\n var lastCode = $session.get('locale');\r\n\r\n // Abre a modal de tipos de documentos.\r\n switch ($rootScope.codERP) {\r\n case 2: // Cala\r\n if (lastCode.substring(0, 2) == 'en')\r\n $scope.onShowQuoteTermsConditionsModal = $modalQuote.showQuoteTermsConditionsModalCala;\r\n else\r\n $scope.onShowQuoteTermsConditionsModal = $modalQuote.showQuoteTermsConditionsModalCCA;\r\n break;\r\n case 3: // Mexico\r\n $scope.onShowQuoteTermsConditionsModal = $modalQuote.showQuoteTermsConditionsModalES;\r\n break;\r\n case 4: // Colombia\r\n $scope.onShowQuoteTermsConditionsModal = $modalQuote.showQuoteTermsConditionsModalColombia;\r\n break;\r\n case 5: // PerĆŗ\r\n $scope.onShowQuoteTermsConditionsModal = $modalQuote.showQuoteTermsConditionsModalPeru;\r\n break;\r\n case 6: // Equador\r\n $scope.onShowQuoteTermsConditionsModal = $modalQuote.showQuoteTermsConditionsModalEquador;\r\n break;\r\n case 7: // Argentina\r\n $scope.onShowQuoteTermsConditionsModal = $modalQuote.showQuoteTermsConditionsModalArgentina;\r\n break;\r\n case 8: // Chile\r\n $scope.onShowQuoteTermsConditionsModal = $modalQuote.showQuoteTermsConditionsModalChile;\r\n break;\r\n default: // Brasil\r\n $scope.onShowQuoteTermsConditionsModal = $modalQuote.showQuoteTermsConditionsModal;\r\n break;\r\n }\r\n\r\n $scope.quoteTermsConditionsCallback = console.info;\r\n\r\n $scope.onOpenComments = SweetAlertFactory.show;\r\n\r\n $scope.onRevalidateQuote = function (evt) {\r\n $rootScope.loading = true;\r\n\r\n fnSetQuotePayload();\r\n\r\n QuoteAPI.RevalidateQuote($scope.quotePayload, fnAfterRevalidateQuote, $helper.throwException);\r\n };\r\n\r\n function fnAfterRevalidateQuote(response) {\r\n\r\n $rootScope.loading = false;\r\n\r\n if (response.success === true) {\r\n document.getElementById(\"openModalExpiredQuote\").click();\r\n }\r\n else {\r\n SweetAlertFactory.showTranslation('Proposal.RevalidationError');\r\n }\r\n };\r\n\r\n // MĆ©todo chamado apos enviar a Proposta para a Next.\r\n function fnAfterSendAcceptQuote(response) {\r\n $rootScope.loading = false;\r\n\r\n $location.url('/quote/' + encodeURIComponent(response.orderCodes.join(', ')));\r\n }\r\n\r\n // MĆ©todo utilizado para validar as informaƧƵes\r\n // obrigatorias de uma Proposta antes de enviar.\r\n function fnValidateQuote () {\r\n\r\n // ValidaĆ§Ć£o da data de validade da quote.\r\n if ($scope.isExpired) {\r\n $modalQuote.showQuoteExpiredModal(null, $scope.quote.salesAgent, console.info);\r\n return false;\r\n }\r\n\r\n // ValidaĆ§Ć£o da data de termos e condiƧƵes.\r\n if (!$scope.isDeclared) {\r\n SweetAlertFactory.showTranslation('Proposal.AcceptTerms');\r\n return false;\r\n }\r\n\r\n // ValidaĆ§Ć£o de InformaƧƵes adicionais do Pedido.\r\n if ($scope.frmQuote.$invalid) {\r\n angular.forEach($scope.frmQuote, function (item) {\r\n angular.forEach(item, function (value) {\r\n if (!_.isEmpty(value)) {\r\n if (typeof value.$setDirty === 'function') value.$setDirty(true);\r\n if (value.hasOwnProperty('$modelValue')) {\r\n if (_.isEmpty(value.$viewValue)) value.$setViewValue(null);\r\n }\r\n }\r\n });\r\n });\r\n SweetAlertFactory.showTranslation('Proposal.IncompleteForm.AdditionalInfo');\r\n return false;\r\n }\r\n\r\n // ValidaĆ§Ć£o do FormulĆ”rio do ResponsĆ”vel pelo Recebimento do Material.\r\n if ($scope.frmResponsible.$invalid) {\r\n angular.forEach($scope.frmResponsible, function (item) {\r\n angular.forEach(item, function (value) {\r\n if (!_.isEmpty(value)) {\r\n if (typeof value.$setDirty === 'function') value.$setDirty(true);\r\n if (value.hasOwnProperty('$modelValue')) {\r\n if (_.isEmpty(value.$viewValue)) value.$setViewValue(null);\r\n }\r\n }\r\n });\r\n });\r\n SweetAlertFactory.showTranslation('Proposal.IncompleteForm.Responsible');\r\n return false;\r\n }\r\n\r\n // ValidaĆ§Ć£o dos Contatos de NFe.\r\n $scope.selectedContacts = $scope.contacts.filter(function (v) { return v.isSelected });\r\n if ($scope.selectedContacts.length === 0) {\r\n SweetAlertFactory.showTranslation(\"Proposal.IncompleteForm.NfeContact\");\r\n return false;\r\n }\r\n\r\n // ValidaĆ§Ć£o de faturamento direto.\r\n if ($scope.quote.isDirectInvoice) {\r\n\r\n // ValidaĆ§Ć£o de Documentos de Enduser para faturamento direto.\r\n if ($scope.quoteFiles.length === 0) {\r\n SweetAlertFactory.showTranslation(\"Proposal.IncompleteForm.Attachment\");\r\n return false;\r\n }\r\n\r\n // ValidaĆ§Ć£o de Contatos de Enduser para faturamento direto.\r\n var ok = $scope.selectedContacts.filter(function (contact) {\r\n return contact.customerId == $scope.quote.endUserId;\r\n }).length > 0;\r\n if (!ok) {\r\n SweetAlertFactory.showTranslation(\"Proposal.IncompleteForm.EndUserAttachment\");\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n // Logica aplicada para decidir se exibe ou nĆ£o o Cod Part FamĆ­lia.\r\n function fnShowProductFamily (codProductFamily) {\r\n var show = $scope.codProductFamily != codProductFamily;\r\n $scope.codProductFamily = codProductFamily;\r\n return show;\r\n };\r\n\r\n function getVrfHeaderAtributes (jsonAttributeValue) {\r\n var vrfs = null;\r\n if(jsonAttributeValue){\r\n vrfs = Object.entries(JSON.parse(jsonAttributeValue));\r\n }\r\n return vrfs;\r\n }\r\n\r\n // MĆ©todo chamado apĆ³s obter uma Proposta.\r\n function fnAfterGetQuote (response) {\r\n $rootScope.loading = false;\r\n\r\n if ($rootScope.user.EconomicGroupId != response.quote.economicGroupId) {\r\n\r\n SweetAlertFactory.showTranslationWithFinally(\r\n 'Proposal.NotAllowed', \r\n function () { $location.url('/') }\r\n );\r\n \r\n } else {\r\n\r\n // INNO-1829\r\n if (response.isSbaInvalid) {\r\n SweetAlertFactory.showTranslation('Proposal.SbaError')\r\n }\r\n\r\n // Cria um objeto com os dados da quote.\r\n $scope.quotePayload.dollarTotal = response.dollarTotal;\r\n $scope.quotePayload.nationalTotal = response.nationalTotal;\r\n \r\n $scope.quote = response.quote;\r\n \r\n \r\n\r\n if($scope.quote != null){\r\n if($scope.quote.decision == 0){ // INTRA-2621, caso Quote chama funĆ§Ć£o para buscar possiveis endereƧos salvos\r\n fnFindTemporaryAddress();\r\n } else if($scope.quote.salesOrders){\r\n $scope.quote.salesOrders.forEach(function (sale) {\r\n $scope.salesOrderId = sale.id;\r\n fnSetBillToAndAddress(sale);\r\n fnSetEndUserAddress(sale);\r\n sale.vrfHeaderValues.forEach(function (vrf) {\r\n var obj = {\r\n \"manufacturer\":vrf.manufacturer,\r\n \"attributes\":[]\r\n };\r\n var attributes = getVrfHeaderAtributes(vrf.attributeValue);\r\n attributes.forEach(function (attributeValue) {\r\n obj.attributes.push(attributeValue)\r\n });\r\n $scope.vrfHeader.push(obj);\r\n });\r\n });\r\n }\r\n \r\n }\r\n \r\n $scope.documentTypes = response.documentTypes;\r\n $scope.contacts = response.listContactCustomer;\r\n\r\n // ForƧa a ordenaĆ§Ć£o pela FamĆ­lia do fabricante.\r\n $scope.options = response.quote.options.map(function (option) {\r\n option.products.sort(function (a, b) {\r\n if (a.productFamilyName > b.productFamilyName) {\r\n return 1;\r\n }\r\n if (a.productFamilyName < b.productFamilyName) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n option.products = option.products.map(function (item) {\r\n item.showCodProductFamily = fnShowProductFamily(item.productFamilyName);\r\n return item;\r\n });\r\n return option;\r\n });\r\n\r\n if ($scope.quote.decision === 0) {\r\n if (new Date() > new Date($scope.quote.expirationDate)) {\r\n $scope.isExpired = true;\r\n $modalQuote.showQuoteExpiredModal(null, $scope.quote.salesAgent, console.info);\r\n } else if ($scope.quote.quoteVersion && $routeParams.version !== $scope.quote.version) {\r\n $modalQuote.showQuoteVersionModal(null, $scope.quote, console.info);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function fnFindTemporaryAddress () {\r\n QuoteAPI.GetTemporaryQuoteAddress({ quoteId: $scope.quote.id }, fnAfterFindTemporaryAddress, $helper.throwException);\r\n }\r\n\r\n function fnAfterFindTemporaryAddress(response) {\r\n if(response.success){\r\n response.listTemporaryQuoteAddress.map(function (address) { \r\n if(address.typeId == $codSalesOrderAddress.Invoice || address.typeId == $codSalesOrderAddress.Undefined){\r\n $scope.quote.billTo = getTemporaryAddress(address);\r\n }else if(address.typeId == $codSalesOrderAddress.EndUser){\r\n $scope.quote.endUser = getTemporaryAddress(address);\r\n }else if(address.typeId == $codSalesOrderAddress.ShipTo){\r\n $scope.quote.shipTo = getTemporaryAddress(address);\r\n }\r\n });\r\n }\r\n }\r\n \r\n function getTemporaryAddress(addressTemporary){\r\n var address = {};\r\n address.name = addressTemporary.customer.name;\r\n address.taxId = addressTemporary.customer.taxId;\r\n address.tradeName = addressTemporary.customer.tradeName;\r\n address.economicGroup = addressTemporary.customer.economicGroup.name;\r\n address.contactEmail = addressTemporary.contact.email;\r\n address.contactPhone = addressTemporary.contact.phone;\r\n address.contactName = addressTemporary.contact.name;\r\n address.contactId = addressTemporary.contact.id;\r\n if(addressTemporary.customer.addresses.length > 0){\r\n address.address = addressTemporary.customer.addresses[0];\r\n address.address.country = addressTemporary.customer.addresses[0].countryName;\r\n }\r\n return address;\r\n }\r\n\r\n function fnSetBillToAndAddress (salesOrder) {\r\n $scope.quote.billTo = Object.assign({}, $scope.quote.endUser);\r\n $scope.quote.billTo.addresses = [];\r\n salesOrder.addresses.map(function (address) { \r\n \r\n if(address.addressTypeId == $codSalesOrderAddress.Invoice || address.addressTypeId == $codSalesOrderAddress.Undefined){\r\n $scope.quote.billTo.name = address.name;\r\n $scope.quote.billTo.taxId = address.taxId;\r\n $scope.quote.billTo.address = address;\r\n $scope.quote.billTo.address.city = address.city;\r\n $scope.quote.billTo.tradeName = address.tradeName;\r\n $scope.quote.billTo.economicGroup = address.economicGroupName;\r\n $scope.quote.billTo.address.area = address.area;\r\n $scope.quote.billTo.address.country = address.countryName;\r\n $scope.quote.billTo.contactEmail = address.contactEmail;\r\n $scope.quote.billTo.contactPhone = address.contactPhone;\r\n $scope.quote.billTo.contactName = address.contactName;\r\n\r\n return;\r\n }\r\n });\r\n \r\n }\r\n function fnSetEndUserAddress (salesOrder) {\r\n $scope.quote.endUser = Object.assign({}, $scope.quote.endUser);\r\n $scope.quote.endUser.addresses = [];\r\n salesOrder.addresses.map(function (address) { \r\n \r\n if(address.addressTypeId == $codSalesOrderAddress.EndUser){\r\n $scope.quote.endUser.name = address.name;\r\n $scope.quote.endUser.taxId = address.taxId;\r\n $scope.quote.endUser.address = address;\r\n $scope.quote.endUser.address.city = address.city;\r\n $scope.quote.endUser.tradeName = address.tradeName;\r\n $scope.quote.endUser.economicGroup = address.economicGroupName;\r\n $scope.quote.endUser.address.area = address.area;\r\n $scope.quote.endUser.address.country = address.countryName;\r\n $scope.quote.endUser.contactEmail = address.contactEmail;\r\n $scope.quote.endUser.contactPhone = address.contactPhone;\r\n $scope.quote.endUser.contactName = address.contactName;\r\n\r\n return;\r\n }\r\n });\r\n \r\n }\r\n \r\n\r\n function fnSetQuotePayload () {\r\n var payload = {\r\n economicGroupId: $rootScope.user.EconomicGroupId,\r\n quoteId: $scope.quote.id,\r\n financialNotes: $scope.quote.financialNotes,\r\n version: $scope.quote.quoteVersion,\r\n isDirectInvoice: $scope.quote.isDirectInvoice,\r\n quote: $scope.quote,\r\n responsible: $scope.responsible,\r\n contacts: $scope.selectedContacts,\r\n quoteFiles: $scope.quoteFiles,\r\n locale: $session.get('locale')\r\n };\r\n if(payload.responsible){\r\n payload.responsible.invoiceNote = $scope.quotePayload.clientNote\r\n }\r\n Object.assign($scope.quotePayload, payload);\r\n }\r\n\r\n // MĆ©todo que inicia o ciclo do aceite de pedido\r\n // Primeiro passo Ć© buscar a Quote na next.\r\n $scope.loadData = function () {\r\n $rootScope.loading = true;\r\n\r\n var params = {\r\n quoteId: $routeParams.quoteId\r\n };\r\n\r\n QuoteAPI.GetQuote(params, fnAfterGetQuote, $helper.throwException);\r\n };\r\n\r\n $scope.showUpdateCompanyModal = function (evt,currentAddres,addressTypeId,fnCallback,readOnlyFields) {\r\n $modalQuote.showUpdateCompanyModal(\r\n evt, \r\n {\r\n \"quote\": $scope.quote,\r\n \"currentAddres\": currentAddres,\r\n \"readOnlyFields\": (currentAddres == null || $scope.quote.decision == 0) ? true : readOnlyFields,\r\n \"salesOrderId\": $scope.salesOrderId,\r\n \"addressTypeId\":addressTypeId\r\n\r\n }, \r\n fnCallback\r\n );\r\n };\r\n\r\n $scope.showVrfOrderModal = function (evt, vrfLineValue) {\r\n var vrf = null;\r\n if(vrfLineValue != null && vrfLineValue.attributeValue != null){\r\n vrf = Object.entries(JSON.parse(vrfLineValue.attributeValue));\r\n }\r\n $modalQuote.showVrfOrderModal(evt, vrf , console.info);\r\n };\r\n\r\n $scope.updateBillingAddressCallback = function (company) {\r\n if(company){\r\n $scope.quote.billTo = company;\r\n }\r\n };\r\n\r\n $scope.updateEndUserAddressCallback = function (company) {\r\n if(company){\r\n $scope.quote.endUser = company;\r\n }\r\n };\r\n\r\n $scope.updateDeliveryAddressCallback = function (company) {\r\n if(company){\r\n $scope.quote.shipTo = company;\r\n }\r\n };\r\n\r\n $scope.setShipToSameAddressBilling = function (event) {\r\n event.stopPropagation();\r\n $scope.quote.shipTo = Object.assign({}, $scope.quote.billTo);\r\n };\r\n\r\n $scope.setEndUserSameAddressBilling = function (event) {\r\n event.stopPropagation();\r\n $scope.sameEndUserAndBillingAddress = !$scope.sameEndUserAndBillingAddress;\r\n if($scope.sameEndUserAndBillingAddress == true){\r\n var id = 0;\r\n var addressTypeId = $codSalesOrderAddress.EndUser;\r\n if($scope.quote.endUser && $scope.quote.endUser.address){\r\n id = $scope.quote.endUser.address.id;\r\n }\r\n $scope.quote.endUser = Object.assign({}, $scope.quote.billTo);\r\n $scope.quote.endUser.address.id = id;\r\n $scope.quote.endUser.address.addressTypeId = addressTypeId;\r\n sendCompany($scope.quote.endUser);\r\n }\r\n };\r\n\r\n function sendCompany(company) {\r\n if($scope.quote.decision == 0){ \r\n var requestAddress = {\r\n \"Id\": null,\r\n \"QuoteId\":$scope.quote.id,\r\n \"CustomerId\": company.address.customerId,\r\n \"ContactId\": company.contactId,\r\n \"TypeId\": company.address.addressTypeId\r\n }\r\n QuoteAPI.PostPostTemporaryQuoteAddress({ request: requestAddress }, requestAddress, fnAfterSendUpdateAddress, $helper.throwException);\r\n }else{\r\n if(company.address.id > 0){ // atualiza\r\n update(company)\r\n }else{ // salva novo endereco\r\n save(company);\r\n }\r\n }\r\n \r\n }\r\n\r\n function save(companyAddres) {\r\n var requestAddress = {\r\n \"CustomerId\": companyAddres.customerId,\r\n \"Customer\": {\r\n \"Id\": companyAddres.customerId,\r\n \"EconomicGroupId\": companyAddres.economicGroupId,\r\n \"TaxId\": companyAddres.taxId,\r\n \"Name\": companyAddres.name,\r\n \"TradeName\": companyAddres.tradeName,\r\n },\r\n \"TaxId\": companyAddres.taxId,\r\n \"Name\": companyAddres.name,\r\n \"TradeName\": companyAddres.tradeName,\r\n \"addressTypeId\": companyAddres.address.addressTypeId,\r\n \"Address\": companyAddres.address.address,\r\n \"Area\": companyAddres.address.area,\r\n \"City\": companyAddres.address.city,\r\n \"StateAbbreviation\": companyAddres.address.stateAbbreviation,\r\n \"ContactId\": companyAddres.address.contactId,\r\n \"ContactName\": companyAddres.address.contactName,\r\n \"ContactPhone\": companyAddres.address.contactPhone,\r\n \"ContactEmail\": companyAddres.address.contactEmail,\r\n \"EconomicGroupId\": companyAddres.economicGroupId,\r\n \"CountryName\": companyAddres.address.country,\r\n \"StateInscription\": companyAddres.address.stateAbbreviation,\r\n \"ZipCode\": companyAddres.address.zipCode\r\n };\r\n $rootScope.loading = true;\r\n QuoteAPI.PostSalesOrderAddress({ salesOrderId: $scope.salesOrderId, request: requestAddress }, requestAddress, fnAfterSendUpdateAddress, $helper.throwException);\r\n \r\n };\r\n\r\n function update(companyAddres) {\r\n var requestAddress = {\r\n \"CustomerId\": companyAddres.customerId,\r\n \"Customer\": {\r\n \"Id\": companyAddres.customerId,\r\n \"EconomicGroupId\": companyAddres.economicGroupId,\r\n \"TaxId\": companyAddres.taxId,\r\n \"Name\": companyAddres.name,\r\n \"TradeName\": companyAddres.tradeName,\r\n },\r\n \"TaxId\": companyAddres.taxId,\r\n \"Name\": companyAddres.name,\r\n \"TradeName\": companyAddres.tradeName,\r\n \"addressTypeId\": companyAddres.address.addressTypeId,\r\n \"Address\": companyAddres.address.address,\r\n \"Area\": companyAddres.address.area,\r\n \"City\": companyAddres.address.city,\r\n \"StateAbbreviation\": companyAddres.address.stateAbbreviation,\r\n \"ContactId\": companyAddres.address.contactId,\r\n \"ContactName\": companyAddres.address.contactName,\r\n \"ContactPhone\": companyAddres.address.contactPhone,\r\n \"ContactEmail\": companyAddres.address.contactEmail,\r\n \"EconomicGroupId\": companyAddres.economicGroupId,\r\n \"CountryName\": companyAddres.address.country,\r\n \"StateInscription\": companyAddres.address.stateAbbreviation,\r\n \"ZipCode\": companyAddres.address.zipCode\r\n };\r\n $rootScope.loading = true;\r\n QuoteAPI.PutSalesOrderAddress({ salesOrderAddressId: companyAddres.address.id, request: requestAddress }, requestAddress, fnAfterSendUpdateAddress, $helper.throwException);\r\n \r\n };\r\n\r\n function fnAfterSendUpdateAddress() {\r\n $rootScope.loading = false; \r\n }\r\n \r\n\r\n\r\n angular.element(document)\r\n .ready($scope.loadData);\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.quote')\r\n .controller('AcceptQuoteCtrl', AcceptQuoteCtrl);\r\n\r\n /** @ngInject */\r\n function AcceptQuoteCtrl(\r\n $rootScope,\r\n $scope,\r\n $helper,\r\n $location,\r\n $modalQuote,\r\n $routeParams,\r\n $session,\r\n $translate,\r\n QuoteAPI,\r\n SweetAlertFactory,\r\n $redirect\r\n ) {\r\n $scope._localPartials = 'app/pages/quote/partials';\r\n \r\n $scope.codERP = $rootScope.user.CodERP;\r\n $scope.isDeclared = false;\r\n $scope.isExpired = false;\r\n\r\n $scope.quote = {};\r\n $scope.options = [];\r\n \r\n // Lista que receberĆ” os contatos selecionados para receber NFe.\r\n $scope.selectedContacts = [];\r\n $scope.contacts = [];\r\n \r\n // Objeto que receberĆ” o contato criado atravĆ©s do portal.\r\n $scope.contact = {};\r\n \r\n // Objeto que receberĆ” a carga Ćŗtil da Proposta\r\n $scope.quotePayload = {};\r\n \r\n // Lista que receberĆ” os documentos do aceite da quote.\r\n $scope.documentTypes = [];\r\n $scope.quoteFiles = [];\r\n\r\n // Objeto que receberĆ” as informaƧƵes do documento adicionado. \r\n $scope.quoteFile = {};\r\n\r\n $scope.onGenerateSimulator = function (evt, id) {\r\n var browser = $helper.getBrowser();\r\n var popupUnblockLink = $helper.getPopupUnblockLink(browser);\r\n var div = document.createElement('div');\r\n var innerHTML = ''\r\n\r\n $translate(['YouWillBeRedirectedTo', 'PopupBlocked', 'PopupUnblockOn', 'Quote.QuoteSimulator'])\r\n .then(function (translations) {\r\n if (popupUnblockLink) {\r\n innerHTML = '
'\r\n innerHTML += translations['PopupUnblockOn'] + ' ' + browser + '';\r\n }\r\n div.innerHTML = translations['PopupBlocked'] + innerHTML\r\n\r\n SweetAlertFactory.showWithFinally(\r\n translations['Quote.QuoteSimulator'],\r\n function (confirm) {\r\n if (!confirm) return;\r\n $rootScope.loading = true;\r\n QuoteAPI.GenerateSimulator({ quoteId: id }, function (response) {\r\n $rootScope.loading = false;\r\n var url = baseApi + response.url;\r\n window.open(url, \"_blank\");\r\n }, $helper.throwException);\r\n },\r\n div\r\n );\r\n });\r\n };\r\n\r\n // MĆ©todo que remove um anexo adicionado na lista.\r\n $scope.onRemoveQuoteFile = function (evt, key) {\r\n $scope.quoteFiles = $scope.quoteFiles.filter(function (quoteFile) {\r\n return quoteFile.filekey != key;\r\n });\r\n };\r\n\r\n // Abre a modal de cadastro de contato.\r\n $scope.onAddDocuments = $modalQuote.showQuoteAddDocumentsModal;\r\n\r\n // Adiciona o contato na lista em memĆ³ria.\r\n $scope.addDocumentsCallback = function (quoteFile) {\r\n if (quoteFile) {\r\n $scope.quoteFiles.push(quoteFile);\r\n }\r\n };\r\n\r\n // Abre a modal de cadastro de contato.\r\n $scope.onNewContact = $modalQuote.showQuoteNewContactModal;\r\n\r\n // Adiciona o contato na lista em memĆ³ria.\r\n $scope.newContactCallback = function (contact) {\r\n if (contact) {\r\n $scope.contacts.push(contact);\r\n }\r\n };\r\n\r\n // MĆ©todo que envia o aceite de pedido para a Next.\r\n $scope.onSendAcceptQuote = function (evt) {\r\n if (evt) evt.preventDefault();\r\n\r\n if (fnValidateQuote()) {\r\n\r\n $rootScope.loading = true;\r\n\r\n fnSetQuotePayload();\r\n\r\n QuoteAPI.SendAcceptQuote($scope.quotePayload, fnAfterSendAcceptQuote, $helper.throwException);\r\n }\r\n };\r\n\r\n // Abre a modal de envio de e-mail.\r\n $scope.onShowQuoteSendEmailModal = function (evt) {\r\n fnSetQuotePayload();\r\n\r\n var locals = Object.assign({}, $scope.quotePayload);\r\n\r\n locals.portalUser = Object.assign({}, $scope.user);\r\n locals.contacts = $scope.contacts.filter(function (v) { return v.isSelected });\r\n\r\n $modalQuote.showQuoteSendEmailModal(evt, locals, console.info);\r\n };\r\n\r\n //$scope.$on('$localeChangeSuccess', function () { location.reload(); });\r\n\r\n // Abre a modal de tipos de documentos.\r\n $scope.onShowQuoteTypeDocumentsModal = $modalQuote.showQuoteTypeDocumentsModal;\r\n\r\n $scope.quoteTypeDocumentsCallback = console.info;\r\n\r\n var lastCode = $session.get('locale');\r\n\r\n // Abre a modal de tipos de documentos.\r\n switch ($rootScope.codERP) {\r\n case 2: // Cala\r\n if (lastCode.substring(0, 2) == 'en')\r\n $scope.onShowQuoteTermsConditionsModal = $modalQuote.showQuoteTermsConditionsModalCala;\r\n else\r\n $scope.onShowQuoteTermsConditionsModal = $modalQuote.showQuoteTermsConditionsModalCCA;\r\n break;\r\n case 3: // Mexico\r\n $scope.onShowQuoteTermsConditionsModal = $modalQuote.showQuoteTermsConditionsModalES;\r\n break;\r\n case 4: // Colombia\r\n $scope.onShowQuoteTermsConditionsModal = $modalQuote.showQuoteTermsConditionsModalColombia;\r\n break;\r\n case 5: // PerĆŗ\r\n $scope.onShowQuoteTermsConditionsModal = $modalQuote.showQuoteTermsConditionsModalPeru;\r\n break;\r\n case 6: // Equador\r\n $scope.onShowQuoteTermsConditionsModal = $modalQuote.showQuoteTermsConditionsModalEquador;\r\n break;\r\n case 7: // Argentina\r\n $scope.onShowQuoteTermsConditionsModal = $modalQuote.showQuoteTermsConditionsModalArgentina;\r\n break;\r\n case 8: // Chile\r\n $scope.onShowQuoteTermsConditionsModal = $modalQuote.showQuoteTermsConditionsModalChile;\r\n break;\r\n default: // Brasil\r\n $scope.onShowQuoteTermsConditionsModal = $modalQuote.showQuoteTermsConditionsModal;\r\n break;\r\n }\r\n\r\n $scope.quoteTermsConditionsCallback = console.info;\r\n\r\n $scope.onOpenComments = SweetAlertFactory.show;\r\n\r\n $scope.onRevalidateQuote = function (evt) {\r\n $rootScope.loading = true;\r\n\r\n fnSetPayloadToCartCreate();\r\n\r\n QuoteAPI.RevalidateQuote($scope.quotePayload, fnAfterCreateCart, $helper.throwException);\r\n };\r\n\r\n function fnAfterRevalidateQuote(response) {\r\n\r\n $rootScope.loading = false;\r\n\r\n if (response.success === true) {\r\n document.getElementById(\"openModalExpiredQuote\").click();\r\n }\r\n else {\r\n SweetAlertFactory.showTranslation('Proposal.RevalidationError');\r\n }\r\n };\r\n\r\n // MĆ©todo chamado apos enviar a Proposta para a Next.\r\n function fnAfterSendAcceptQuote(response) {\r\n $rootScope.loading = false;\r\n\r\n $location.url('/quote/' + encodeURIComponent(response.orderCodes.join(', ')));\r\n }\r\n\r\n // MĆ©todo utilizado para validar as informaƧƵes\r\n // obrigatorias de uma Proposta antes de enviar.\r\n function fnValidateQuote () {\r\n\r\n // ValidaĆ§Ć£o da data de validade da quote.\r\n if ($scope.isExpired) {\r\n $modalQuote.showQuoteExpiredModal(null, $scope.quote.salesAgent, console.info);\r\n return false;\r\n }\r\n\r\n // ValidaĆ§Ć£o da data de termos e condiƧƵes.\r\n if (!$scope.isDeclared) {\r\n SweetAlertFactory.showTranslation('Proposal.AcceptTerms');\r\n return false;\r\n }\r\n\r\n // ValidaĆ§Ć£o de InformaƧƵes adicionais do Pedido.\r\n if ($scope.frmQuote.$invalid) {\r\n angular.forEach($scope.frmQuote, function (item) {\r\n angular.forEach(item, function (value) {\r\n if (!_.isEmpty(value)) {\r\n if (typeof value.$setDirty === 'function') value.$setDirty(true);\r\n if (value.hasOwnProperty('$modelValue')) {\r\n if (_.isEmpty(value.$viewValue)) value.$setViewValue(null);\r\n }\r\n }\r\n });\r\n });\r\n SweetAlertFactory.showTranslation('Proposal.IncompleteForm.AdditionalInfo');\r\n return false;\r\n }\r\n\r\n // ValidaĆ§Ć£o do FormulĆ”rio do ResponsĆ”vel pelo Recebimento do Material.\r\n if ($scope.frmResponsible.$invalid) {\r\n angular.forEach($scope.frmResponsible, function (item) {\r\n angular.forEach(item, function (value) {\r\n if (!_.isEmpty(value)) {\r\n if (typeof value.$setDirty === 'function') value.$setDirty(true);\r\n if (value.hasOwnProperty('$modelValue')) {\r\n if (_.isEmpty(value.$viewValue)) value.$setViewValue(null);\r\n }\r\n }\r\n });\r\n });\r\n SweetAlertFactory.showTranslation('Proposal.IncompleteForm.Responsible');\r\n return false;\r\n }\r\n\r\n // ValidaĆ§Ć£o dos Contatos de NFe.\r\n $scope.selectedContacts = $scope.contacts.filter(function (v) { return v.isSelected });\r\n if ($scope.selectedContacts.length === 0) {\r\n SweetAlertFactory.showTranslation(\"Proposal.IncompleteForm.NfeContact\");\r\n return false;\r\n }\r\n\r\n // ValidaĆ§Ć£o de faturamento direto.\r\n if ($scope.quote.isDirectInvoice) {\r\n\r\n // ValidaĆ§Ć£o de Documentos de Enduser para faturamento direto.\r\n if ($scope.quoteFiles.length === 0) {\r\n SweetAlertFactory.showTranslation(\"Proposal.IncompleteForm.Attachment\");\r\n return false;\r\n }\r\n\r\n // ValidaĆ§Ć£o de Contatos de Enduser para faturamento direto.\r\n var ok = $scope.selectedContacts.filter(function (contact) {\r\n return contact.customerId == $scope.quote.endUserId;\r\n }).length > 0;\r\n if (!ok) {\r\n SweetAlertFactory.showTranslation(\"Proposal.IncompleteForm.EndUserAttachment\");\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n // Logica aplicada para decidir se exibe ou nĆ£o o Cod Part FamĆ­lia.\r\n function fnShowProductFamily (codProductFamily) {\r\n var show = $scope.codProductFamily != codProductFamily;\r\n $scope.codProductFamily = codProductFamily;\r\n return show;\r\n };\r\n\r\n // MĆ©todo chamado apĆ³s obter uma Proposta.\r\n function fnAfterGetQuote (response) {\r\n $rootScope.loading = false;\r\n\r\n if ($rootScope.user.EconomicGroupId != response.quote.economicGroupId) {\r\n\r\n SweetAlertFactory.showTranslationWithFinally(\r\n 'Proposal.NotAllowed', \r\n function () { $location.url('/') }\r\n );\r\n \r\n } else {\r\n\r\n // INNO-1829\r\n if (response.isSbaInvalid) {\r\n SweetAlertFactory.showTranslation('Proposal.SbaError')\r\n }\r\n\r\n // Cria um objeto com os dados da quote.\r\n $scope.quotePayload.dollarTotal = response.dollarTotal;\r\n $scope.quotePayload.nationalTotal = response.nationalTotal;\r\n \r\n $scope.quote = response.quote;\r\n $scope.documentTypes = response.documentTypes;\r\n $scope.contacts = response.listContactCustomer;\r\n\r\n // ForƧa a ordenaĆ§Ć£o pela FamĆ­lia do fabricante.\r\n $scope.options = response.quote.options.map(function (option) {\r\n option.products.sort(function (a, b) {\r\n if (a.productFamilyName > b.productFamilyName) {\r\n return 1;\r\n }\r\n if (a.productFamilyName < b.productFamilyName) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n option.products = option.products.map(function (item) {\r\n item.showCodProductFamily = fnShowProductFamily(item.productFamilyName);\r\n return item;\r\n });\r\n return option;\r\n });\r\n\r\n if ($scope.quote.decision === 0) {\r\n if (new Date() > new Date($scope.quote.expirationDate)) {\r\n $scope.isExpired = true;\r\n //$modalQuote.showQuoteExpiredModal(null, $scope.quote.salesAgent, console.info);\r\n } else if ($scope.quote.quoteVersion && $routeParams.version !== $scope.quote.version) {\r\n $modalQuote.showQuoteVersionModal(null, $scope.quote, console.info);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function fnSetQuotePayload () {\r\n var payload = {\r\n economicGroupId: $rootScope.user.EconomicGroupId,\r\n quoteId: $scope.quote.id,\r\n version: $scope.quote.quoteVersion,\r\n isDirectInvoice: $scope.quote.isDirectInvoice,\r\n quote: $scope.quote,\r\n responsible: $scope.responsible,\r\n contacts: $scope.selectedContacts,\r\n quoteFiles: $scope.quoteFiles,\r\n locale: $session.get('locale')\r\n };\r\n\r\n Object.assign($scope.quotePayload, payload);\r\n }\r\n\r\n function fnSetPayloadToCartCreate() {\r\n $scope.quotePayload = {\r\n quote_fields: [].concat.apply([], $scope.quote.options.map(function (option) {\r\n return option.products.map(function (product) {\r\n return { sku: product.sku, qty: product.qty };\r\n });\r\n }))\r\n };\r\n }\r\n\r\n function fnAfterCreateCart(response) {\r\n $redirect.afterGetExpressPortalCredentials(response)\r\n\r\n $rootScope.loading = false;\r\n };\r\n\r\n // MĆ©todo que inicia o ciclo do aceite de pedido\r\n // Primeiro passo Ć© buscar a Quote na next.\r\n $scope.loadData = function () {\r\n $rootScope.loading = true;\r\n\r\n var params = {\r\n quoteId: $routeParams.quoteId\r\n };\r\n\r\n QuoteAPI.GetQuote(params, fnAfterGetQuote, $helper.throwException);\r\n };\r\n\r\n angular.element(document)\r\n .ready($scope.loadData);\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n var _localPartials = 'app/pages/quote/partials';\r\n\r\n angular.module('my')\r\n .directive('acceptQuoteFooter', function () {\r\n return {\r\n restrict: 'A',\r\n templateUrl: _localPartials+'/accept-quote-footer.html'\r\n }\r\n })\r\n .directive('quoteAddDocuments', function () {\r\n return {\r\n restrict: 'A',\r\n templateUrl: _localPartials+'/quote-add-documents.html'\r\n }\r\n })\r\n .directive('quoteAdditionalInformation', function () {\r\n return {\r\n restrict: 'A',\r\n templateUrl: _localPartials+'/quote-additional-information.html'\r\n }\r\n })\r\n .directive('quoteGeneralInformation', function () {\r\n return {\r\n restrict: 'A',\r\n templateUrl: _localPartials+'/quote-general-information.html'\r\n }\r\n })\r\n .directive('quoteInvoiceContacts', function () {\r\n return {\r\n restrict: 'A',\r\n templateUrl: _localPartials+'/quote-invoice-contacts.html'\r\n }\r\n })\r\n .directive('quoteItems', function () {\r\n return {\r\n restrict: 'A',\r\n templateUrl: _localPartials+'/quote-items.html'\r\n }\r\n })\r\n .directive('quoteReceivingMaterial', function () {\r\n return {\r\n restrict: 'A',\r\n templateUrl: _localPartials+'/quote-receiving-material.html'\r\n }\r\n })\r\n .directive('quoteSubtotal', function () {\r\n return {\r\n restrict: 'A',\r\n templateUrl: _localPartials+'/quote-subtotal.html'\r\n }\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.reseller-order')\r\n .controller('CspDetailsCtrl', CspDetailsCtrl);\r\n\r\n /** @ngInject */\r\n function CspDetailsCtrl (\r\n $rootScope,\r\n $scope, \r\n $mdDialog,\r\n $helper,\r\n $location,\r\n $translate,\r\n $timeout,\r\n $routeParams,\r\n OrderAPI,\r\n SweetAlertFactory,\r\n toastr\r\n ) {\r\n\r\n $rootScope.loading = true;\r\n\r\n $scope.order = {};\r\n $scope.partnumbers = [];\r\n $scope.Stage = 'Inicio';\r\n $scope.taxes = false;\r\n $scope.cspDetails = true;\r\n\r\n var toastrMessages = {};\r\n var keys = [\r\n 'OrderNotFound',\r\n ];\r\n function getToastrTranslations() {\r\n $translate(keys).then(function (translations) {\r\n toastrMessages.OrderNotFound = translations['OrderNotFound'];\r\n });\r\n $scope.$on('$localeChangeSuccess', getToastrTranslations);\r\n }\r\n getToastrTranslations();\r\n\r\n $scope.getCellClass = function (status) {\r\n status = status.toLowerCase();\r\n switch (status) {\r\n case 'quitado':\r\n case 'pago':\r\n case 'al corriente':\r\n case 'paga':\r\n return 'fcor-verde';\r\n case 'liberada':\r\n return 'fcor-azul';\r\n default: \r\n return null;\r\n }\r\n };\r\n\r\n $scope.openNfeModal = function (nfe) {\r\n $scope.nfe = nfe;\r\n $('#detalhesNfe').modal('show');\r\n };\r\n\r\n $scope.closeNfeModal = function () {\r\n $scope.nfe = '';\r\n $('#detalhesNfe').modal('hide');\r\n };\r\n\r\n function afterGetOrderDetails (response) {\r\n if (!response) {\r\n showModalError('OrderNotFound');\r\n } else if (response.success === false) {\r\n showModalError(response.errorMessage);\r\n } else {\r\n $scope.order = response.order;\r\n $scope.partnumbers = response.partnumbers;\r\n $scope.taxes = !_.isEmpty(response.partnumbers) && response.partnumbers.length > 0 && response.partnumbers[0].taxes != null;\r\n }\r\n $rootScope.loading = false;\r\n }\r\n\r\n function showModalError (errorMessage) {\r\n var alert = $mdDialog.alert({\r\n title: 'TD SYNNEX',\r\n textContent: toastrMessages[errorMessage],\r\n ok: 'OK'\r\n });\r\n $mdDialog\r\n .show( alert )\r\n .finally(function () {\r\n javascript:history.go(-1);\r\n });\r\n };\r\n\r\n function init () {\r\n OrderAPI.GetCSPDetails({ titleUkey: $routeParams.titleUkey }, afterGetOrderDetails, $helper.throwException);\r\n }\r\n\r\n init();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.reseller-order')\r\n .controller('OrderDetailsCtrl', OrderDetailsCtrl);\r\n\r\n /** @ngInject */\r\n function OrderDetailsCtrl (\r\n $rootScope,\r\n $scope, \r\n $mdDialog,\r\n $helper,\r\n $location,\r\n $translate,\r\n $timeout,\r\n $routeParams,\r\n OrderAPI,\r\n SweetAlertFactory,\r\n toastr\r\n ) {\r\n\r\n $rootScope.loading = true;\r\n\r\n $scope.order = {};\r\n $scope.partnumbers = [];\r\n $scope.Stage = 'Inicio';\r\n $scope.taxes = false;\r\n\r\n var toastrMessages = {};\r\n var keys = [\r\n 'OrderNotFound',\r\n 'ErrorOpenOrder',\r\n ];\r\n function getToastrTranslations() {\r\n $translate(keys).then(function (translations) {\r\n toastrMessages.OrderNotFound = translations['OrderNotFound'];\r\n toastrMessages.ErrorOpenOrder = translations['ErrorOpenOrder'];\r\n });\r\n $scope.$on('$localeChangeSuccess', getToastrTranslations);\r\n }\r\n getToastrTranslations();\r\n\r\n $scope.getCellClass = function (status) {\r\n status = status.toLowerCase();\r\n switch (status) {\r\n case 'quitado':\r\n case 'pago':\r\n case 'al corriente':\r\n case 'paga':\r\n return 'fcor-verde';\r\n case 'liberada':\r\n return 'fcor-azul';\r\n default: \r\n return null;\r\n }\r\n };\r\n\r\n $scope.openNfeModal = function (nfe) {\r\n $scope.nfe = nfe;\r\n $('#detalhesNfe').modal('show');\r\n };\r\n\r\n $scope.closeNfeModal = function () {\r\n $scope.nfe = '';\r\n $('#detalhesNfe').modal('hide');\r\n };\r\n\r\n function afterGetOrderDetails (response) {\r\n if (!response) {\r\n showModalError('OrderNotFound');\r\n } else if (response.success === false) {\r\n showModalError('ErrorOpenOrder');\r\n } else {\r\n $scope.order = response.order;\r\n $scope.partnumbers = response.partnumbers;\r\n $scope.taxes = !_.isEmpty(response.partnumbers) && response.partnumbers.length > 0 && response.partnumbers[0].taxes != null;\r\n }\r\n $rootScope.loading = false;\r\n }\r\n\r\n function showModalError (errorMessage) {\r\n var alert = $mdDialog.alert({\r\n title: 'TD SYNNEX',\r\n textContent: toastrMessages[errorMessage],\r\n ok: 'OK'\r\n });\r\n $mdDialog\r\n .show( alert )\r\n .finally(function () {\r\n javascript:history.go(-1);\r\n });\r\n };\r\n\r\n function fnInit () {\r\n OrderAPI.GetOrderDetails({ orderCode: $routeParams.orderCode }, afterGetOrderDetails, $helper.throwException);\r\n }\r\n \r\n fnInit();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.reseller-order')\r\n .controller('OrderHistoryCtrl', OrderHistoryCtrl);\r\n\r\n /** @ngInject */\r\n function OrderHistoryCtrl (\r\n $rootScope,\r\n $scope, \r\n $helper,\r\n $modalFactory,\r\n $orderStatus,\r\n $session,\r\n $translate,\r\n $timeout,\r\n DownloadAPI,\r\n OrderAPI,\r\n SweetAlertFactory,\r\n $codErp,\r\n $filter\r\n ) {\r\n \r\n $scope.codERP = $rootScope.user.CodERP;\r\n\r\n $scope.today = $filter('date')(new Date(),'yyyy-MM-dd HH:mm:ss');\r\n $scope.filter = $session.get('filter.orders') || { statusCode: 0 };\r\n $scope.orderStatusList = $orderStatus.Get();\r\n $scope.isEmptyHistoryList = false;\r\n $scope.orderHistoryList = [];\r\n\r\n // Paginate\r\n $scope.limitOptions = [10, 25, 50, 100]\r\n $scope.limit = $scope.limitOptions[0];\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n $scope.totalRows = 0;\r\n $scope.orderBy = 'OrderDate';\r\n $scope.ASC = false;\r\n $scope.translations = null;\r\n\r\n $scope.hasNextPage = function (evt) {\r\n return $scope.offset + $scope.limit >= $scope.totalRows;\r\n };\r\n\r\n $scope.nextPage = function (evt) {\r\n $scope.lastOffset = $scope.offset;\r\n $scope.offset = $scope.offset + $scope.limit;\r\n fnApplyFilter();\r\n };\r\n\r\n $scope.prevPage = function (evt) {\r\n $scope.lastOffset = $scope.offset;\r\n $scope.offset = $scope.offset - $scope.limit;\r\n fnApplyFilter();\r\n };\r\n\r\n $scope.changeLimit = function (evt, limit) {\r\n $scope.limit = limit || $scope.limitOptions[0];\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n fnApplyFilter();\r\n };\r\n\r\n $scope.onOrderBy = function (evt, column) {\r\n $scope.orderBy = column;\r\n $scope.ASC = !$scope.ASC;\r\n $scope.offset = 0;\r\n fnApplyFilter();\r\n };\r\n // Final Paginate\r\n\r\n //Erps enabled to get data from Trackit\r\n // BRA -> 1\r\n // CALA -> 2\r\n // COL -> 4\r\n $scope.trackitEnabledErps = [1, 2, 4];\r\n\r\n $scope.onApplyFilter = function (evt) {\r\n evt.preventDefault();\r\n if (fnValidateFilter()) {\r\n $scope.changeLimit(evt, $scope.limit);\r\n }\r\n };\r\n\r\n $scope.onResetFilter = function (evt) {\r\n $scope.filter = { statusCode: 0 };\r\n };\r\n \r\n $scope.formatUnknown = function (value) {\r\n return value || '-';\r\n };\r\n\r\n $scope.formatDate = function (value) {\r\n return value ? new Date(value).toLocaleDateString() : '';\r\n };\r\n\r\n $scope.onOpenCommentsModal = function (evt, remarks) {\r\n SweetAlertFactory.show(remarks.join(', '));\r\n };\r\n\r\n $scope.onDownload = function (evt) {\r\n $rootScope.loading = true;\r\n\r\n var filter = fnMountFilter();\r\n filter.culture = $translate.use();\r\n\r\n OrderAPI.orderTrackerExcel(filter, fnAfterDownload, $helper.throwException);\r\n };\r\n\r\n $scope.isEmptyList = function (list) {\r\n return list.filter(function (el) {\r\n return !_.isEmpty(el);\r\n }).length === 0;\r\n };\r\n\r\n $scope.openVendors = function (ev, vendorList) {\r\n if (vendorList !== '') {\r\n SweetAlertFactory.show(vendorList);\r\n }\r\n };\r\n\r\n $scope.FormatoData = $rootScope.getFormatoData();\r\n\r\n function fnAfterDownload (response) {\r\n $rootScope.loading = false;\r\n\r\n if (response.success === false) {\r\n\r\n SweetAlertFactory.showTranslation(response.errorMessage);\r\n\r\n } else {\r\n \r\n window.open(baseApi + response.url, \"_blank\");\r\n DownloadAPI.delete({ fileName: response.fileName });\r\n }\r\n };\r\n\r\n function fnValidateFilter () {\r\n\r\n if ($scope.filter.minValue || $scope.filter.maxValue) {\r\n if (!$scope.filter.minValue || !$scope.filter.maxValue) {\r\n SweetAlertFactory.showTranslation('Validate.ValueAlert');\r\n return false;\r\n }\r\n if (Number($scope.filter.minValue) > Number($scope.filter.maxValue)) {\r\n SweetAlertFactory.showTranslation('Validate.ValueError');\r\n return false;\r\n }\r\n }\r\n\r\n if ($scope.filter.minDate || $scope.filter.maxDate) {\r\n if (!$scope.filter.minDate || !$scope.filter.maxDate) {\r\n SweetAlertFactory.showTranslation('Validate.DateAlert');\r\n return false;\r\n }\r\n if (new Date($scope.filter.minDate) > new Date($scope.filter.maxDate)) {\r\n SweetAlertFactory.showTranslation('Validate.DateError');\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function fnFillStockStatusToWh (status) {\r\n if([\"Stock\", \"En Stock\", \"Em estoque\"].includes(status)){\r\n return \"WH\";\r\n }else if([$codErp.Cala].includes($scope.codERP) && [\"OnHand\", \"En Mano\", \"On-Hand\"].includes(status)){\r\n return \"WH\";\r\n }\r\n return status;\r\n }\r\n\r\n function fnFillWithCustomPropertiesFromTrackit (list) {\r\n for (var i = 0; i < list.length; i++) {\r\n\r\n list[i].status = fnFillStockStatusToWh(list[i].status);\r\n list[i].invoicePrevision = list[i].billingDate;\r\n\r\n list[i].manufacturingFinish = list[i].shippedRealDate || list[i].shippedEstimatedDate || list[i].manufacturingFinish;\r\n list[i].isManufacturingFinishEstimated = _.isEmpty(list[i].shippedRealDate);\r\n\r\n list[i].arrivalForecast = list[i].inCountryRealDate || list[i].inCountryEstimatedDate;\r\n list[i].isArrivalForecastEstimated = _.isEmpty(list[i].inCountryRealDate);\r\n\r\n list[i].customsClearance = list[i].transitToStockRealDate || list[i].transitToStockEstimatedDate;\r\n list[i].isCustomsClearanceEstimated = _.isEmpty(list[i].transitToStockRealDate);\r\n\r\n list[i].lastMilePickup = list[i].lastMilePickupRealDate || list[i].actualLastMilePickupDate;\r\n list[i].lastMileDelivery = list[i].lastMileDeliveryRealDate || list[i].lastMileDeliveryEstimatedDate;\r\n\r\n list[i].onHand = list[i].onHandRealDate || list[i].onHandEstimatedDate;\r\n list[i].isOnHandEstimated = _.isEmpty(list[i].onHandRealDate);\r\n\r\n if(list[i].shippedRealDate == null && list[i].manufacturingFinish == null){\r\n list[i].isManufacturingFinishEstimated = true;\r\n }\r\n }\r\n return list;\r\n };\r\n\r\n $scope.report = function(item) {\r\n $modalFactory.sendEmail(null, {order: item}, function(){});\r\n }\r\n\r\n $scope.getInfo = function(item){\r\n return $scope.translations['ReportedDate'] + $filter('date')(item.delayReportedAt,'dd/MM/yyyy HH:mm') + $scope.translations['ReportedUser'] + item.delayReportedBy; ; \r\n }\r\n\r\n $scope.isDelayed = function (data){\r\n return $scope.today > data;\r\n }\r\n\r\n $scope.getLabel = function (item, isDelayed){\r\n if (item && isDelayed){\r\n return 'Atrasada';\r\n } else return item ? 'DataEstimada' : 'Real';\r\n }\r\n\r\n function fnFillWithCustomPropertiesFromReport (list) {\r\n for (var i = 0; i < list.length; i++) {\r\n list[i].invoicePrevision = list[i].featuringDate || list[i].featuringPreview;\r\n\r\n list[i].manufacturingFinish = list[i].expectedManufacturerExitDate;\r\n list[i].arrivalForecast = list[i].estimatedArrivalDate;\r\n list[i].customsClearance = list[i].customsClearance;\r\n\r\n list[i].lastMilePickup = null;\r\n list[i].lastMileDelivery = null;\r\n list[i].originPartnumber = list[i].partnumber;\r\n list[i].qtd = list[i].partNumbersQuantity;\r\n list[i].status = list[i].statusReport205Text;\r\n list[i].remarks = list[i].invoiceRemarks ? [ list[i].invoiceRemarks ] : [];\r\n\r\n // Todos os Status de 'On Order' e anterior.\r\n list[i].isManufacturingFinishEstimated = true;\r\n list[i].isArrivalForecastEstimated = true;\r\n list[i].isCustomsClearanceEstimated = true;\r\n\r\n if (list[i].status === 'Shipped') {\r\n\r\n list[i].isManufacturingFinishEstimated = false;\r\n\r\n } else if (list[i].status === 'Stock US') {\r\n\r\n list[i].isManufacturingFinishEstimated = false;\r\n list[i].isArrivalForecastEstimated = false;\r\n\r\n } else if (list[i].status === 'WH') {\r\n\r\n list[i].isManufacturingFinishEstimated = false;\r\n list[i].isArrivalForecastEstimated = false;\r\n list[i].isCustomsClearanceEstimated = false;\r\n }\r\n }\r\n return list;\r\n };\r\n\r\n $scope.onToggleButton = function (evt, order) {\r\n\r\n var showdetails = !order.showdetails;\r\n $scope.orderHistoryList.forEach(function (o) {\r\n o.showdetails = false;\r\n o.multivendors = o.vendorList.length > 1;\r\n });\r\n order.showdetails = showdetails;\r\n };\r\n\r\n $scope.onGetTracker = function (evt, order) {\r\n $rootScope.gaTrackingEvent(order.orderCode);\r\n $scope.isEmptyTrackerList = false;\r\n order.orderTrackerList = [];\r\n\r\n $scope.onToggleButton(evt, order);\r\n\r\n if (!order.showdetails) return;\r\n\r\n $rootScope.loading = true;\r\n\r\n var filter = {\r\n orderCode: order.orderCode,\r\n culture: $session.get('locale'),\r\n statusText: order.statusCode !== 12 ? undefined : 'delivery'\r\n };\r\n\r\n OrderAPI.GetOrderTracking(filter, \r\n angular.bind($scope, fnAfterGetOrderTracking, order), \r\n $helper.throwException);\r\n };\r\n\r\n function fnAfterGetOrderTracking (order, response) {\r\n \r\n $rootScope.loading = false;\r\n\r\n if (response.orderTrackerList.length > 0) {\r\n $scope.isEmptyTrackerList = false;\r\n order.orderTrackerList = fnFillWithCustomPropertiesFromTrackit(response.orderTrackerList);\r\n } else {\r\n $scope.orderTrackerList = [];\r\n $scope.isEmptyTrackerList = true;\r\n }\r\n\r\n $timeout(function () {\r\n $(document).removeClass('tracking-current-step');\r\n\r\n $('.backlog-details .ov-item-list').each(function (pos, el) {\r\n $(el).find('.is-tracking-step.tracking-real-step').last().parent().addClass('tracking-current-step');\r\n });\r\n }, 1);\r\n }\r\n\r\n function fnAfterListOrdersByReport205 (order, response) {\r\n $rootScope.loading = false;\r\n\r\n if (response.orderList.length > 0) {\r\n $scope.isEmptyTrackerList = false;\r\n order.orderTrackerList = fnFillWithCustomPropertiesFromReport(response.orderList);\r\n } else {\r\n $scope.orderTrackerList = [];\r\n $scope.isEmptyTrackerList = true;\r\n }\r\n }\r\n\r\n function fnAfterListByFilter (response) {\r\n\r\n $rootScope.loading = false;\r\n\r\n if ($scope.codERP === 1){\r\n showTrackingWarning();\r\n }\r\n if (response.totalRows > 0) {\r\n $scope.isEmptyHistoryList = false;\r\n $scope.totalRows = response.totalRows;\r\n $scope.orderHistoryList = response.orderVOList;\r\n } else {\r\n $scope.orderHistoryList = [];\r\n $scope.isEmptyHistoryList = true;\r\n }\r\n };\r\n\r\n function fnApplyFilter() {\r\n \r\n $rootScope.loading = true;\r\n\r\n OrderAPI.ListOrderHistoryByFilter(fnMountFilter(), fnAfterListByFilter, $helper.throwException);\r\n };\r\n\r\n function showTrackingWarning() {\r\n SweetAlertFactory.showTranslation('ResellerOrderHistory.Warning');\r\n };\r\n\r\n function fnMountFilter() {\r\n var filter = {\r\n offset: $scope.offset,\r\n limit: $scope.limit,\r\n orderBy: $scope.orderBy,\r\n ASC: $scope.ASC,\r\n minDate: $scope.filter.minDate,\r\n maxDate: $scope.filter.maxDate,\r\n minValue: $scope.filter.minValue,\r\n maxValue: $scope.filter.maxValue,\r\n orderCode: $scope.filter.orderCode,\r\n statusCode: $scope.filter.statusCode,\r\n query: $scope.filter.orderCode || $scope.filter.customerCode || $scope.filter.endUser || $scope.filter.codEndUser,\r\n culture: $translate.use()\r\n };\r\n\r\n $session.set('filter.orders', Object.assign($scope.filter, filter));\r\n\r\n return filter;\r\n }\r\n\r\n function isDateEmpty(date) {\r\n return _.isEmpty(date);\r\n }\r\n\r\n function isHardware(skuType) {\r\n return skuType == 'Hardware';\r\n }\r\n\r\n function inTransit(status) {\r\n return status != 'Faturado' && status != 'Em estoque' && status != 'Pre Order';\r\n }\r\n\r\n function isMissingRealOnHand (item) {\r\n return !item.isRealOnHand && (item.isRealInCountry || item.isRealTransitToStock);\r\n };\r\n\r\n function isMissingRealInCountry (item) {\r\n return !item.isRealInCountry && item.isRealTransitToStock;\r\n };\r\n\r\n function isMissingTransitDates(item) {\r\n return !item.isRealOnHand && !item.isRealInCountry && !item.isRealTransitToStock;\r\n };\r\n\r\n function isIntangible(status) {\r\n return status == 'Intangible' || status == 'IntangĆ­vel';\r\n }\r\n\r\n $scope.getSpanCls = function (isEstimated) {\r\n return isEstimated ? 'fcor-amarelo' : 'fcor-verde-claro';\r\n };\r\n\r\n $scope.getStepSpanCls = function (isEstimated) {\r\n return !isEstimated ? 'tracking-real-step' : 'tracking-estimated-step';\r\n };\r\n\r\n // Regras -- Shipped //\r\n $scope.displayShippedDate = function (item) {\r\n return !isDateEmpty(item.manufacturingFinish);\r\n }; \r\n // Regras -- Shipped //\r\n\r\n // Regras -- OnHand //\r\n $scope.displayOnHandCheck = function (item) {\r\n if(item.finalidade == 8){ //Indica PO de Stock (Mostrar o Check)\r\n return true;\r\n }\r\n return (item.status != 'Pre Order' && (!isHardware(item.skuType) || isMissingRealOnHand(item) || !item.isInternational))\r\n || item.status == 'Faturado' || (item.status == 'Em estoque' && item.isInternational);\r\n };\r\n\r\n $scope.displayOnHandDate = function (item) {\r\n if([$codErp.Peru,$codErp.Argentina,$codErp.Chile].includes($scope.codERP) && !isDateEmpty(item.onHand) && !isMissingRealOnHand(item)){\r\n return true;\r\n }\r\n return !isMissingTransitDates(item) && !isDateEmpty(item.onHand) && !isMissingRealOnHand(item) && item.isInternational && inTransit(item.status);\r\n };\r\n // Regras -- OnHand //\r\n\r\n // Regras - InCountry //\r\n $scope.displayInCountryCheck = function (item) {\r\n if ([$codErp.Peru, $codErp.Chile, $codErp.Argentina].includes($scope.codERP))\r\n return false;\r\n\r\n return ((item.status != 'Pre Order' && (!isHardware(item.skuType) || isMissingRealInCountry(item) || !item.isInternational)) || \r\n item.status == 'Faturado' || (item.status == 'Em estoque' && item.isInternational)) && ![$codErp.Cala].includes($scope.codERP);\r\n };\r\n\r\n $scope.displayInCountryDate = function (item) {\r\n if ([$codErp.Peru].includes($scope.codERP)){\r\n return ((item.isRealOnHand || !item.isArrivalForecastEstimated) && item.status != 'IntangĆ­vel');\r\n }\r\n if ([$codErp.Argentina].includes($scope.codERP)){\r\n return (!item.isArrivalForecastEstimated && item.status != 'IntangĆ­vel');\r\n }\r\n if ([$codErp.Chile].includes($scope.codERP)){\r\n return (!isDateEmpty(item.arrivalForecast) && item.status != 'IntangĆ­vel');\r\n }\r\n return !isMissingTransitDates(item) && !isDateEmpty(item.arrivalForecast) && !isMissingRealInCountry(item) && item.isInternational && inTransit(item.status);\r\n };\r\n // Regras - InCountry //\r\n\r\n // Regras - TransitToStock //\r\n $scope.displayTransitToStockCheck = function (item) {\r\n return (item.status != 'Pre Order' && (!isHardware(item.skuType) || !item.isInternational))\r\n || item.status == 'Faturado' || (item.status == 'Em estoque' && item.isInternational);\r\n };\r\n\r\n $scope.displayTransitToStockDate = function (item, codERP) {\r\n return !isMissingTransitDates(item) && !isDateEmpty(item.customsClearance) && [1, 7, 8].includes(codERP) && item.isInternational && inTransit(item.status);\r\n };\r\n // Regras - TransitToStock //\r\n\r\n // Regras - Invoice //\r\n \r\n $scope.displayInvoiceDate = function(item) {\r\n if ($scope.isCiscoBR && item.status == \"Cancelled\") {\r\n return false;\r\n }\r\n if(item.finalidade == 8 && !isDateEmpty(item.invoicePrevision)){ //PO de estoque com data de Invoice\r\n return true;\r\n } \r\n return !isDateEmpty(item.invoicePrevision) && ((isDateEmpty(item.shippedDate) && !isHardware(item.skuType)) || (!isDateEmpty(item.shippedDate) || !isDateEmpty(item.manufacturingFinish)));\r\n };\r\n\r\n $scope.displayStatus = function(item) {\r\n if([$codErp.Peru,$codErp.Argentina,$codErp.Chile].includes($scope.codERP)){\r\n if(item.finalidade == 8 && !isDateEmpty(item.invoicePrevision)){ //PO de estoque com data de Invoice\r\n return true;\r\n } \r\n if(['fortinet','f5','cisco'].includes(item.vendor.toLowerCase()) && item.isManufacturingFinishEstimated){\r\n return false;\r\n }\r\n }\r\n if(\r\n ([$codErp.Peru, $codErp.Colombia, $codErp.Equador].includes($scope.codERP) && item.isManufacturingFinishEstimated && (isHardware(item.skuType)) || isIntangible(item.status))|| \r\n (item.status == \"On Order\" && !isHardware(item.skuType) && [$codErp.Peru].includes($scope.codERP))\r\n ){\r\n return false;\r\n }\r\n if([$codErp.Peru].includes($scope.codERP)){\r\n if(isHardware(item.skuType) && !item.isManufacturingFinishEstimated){\r\n return true;\r\n }else if(!isHardware(item.skuType)){\r\n return item.status != \"On Order\";\r\n }\r\n }\r\n if([$codErp.Argentina,$codErp.Chile].includes($scope.codERP)){\r\n if(!isDateEmpty(item.invoicePrevision)){\r\n return true;\r\n } \r\n return false;\r\n }\r\n\r\n if([$codErp.Cala].includes($scope.codERP)){\r\n return !((item.status == \"On Order\" || item.status == \"Pre Order\") && isDateEmpty(item.shippedDate) && (isDateEmpty(item.manufacturingFinish)));\r\n }\r\n return true;\r\n };\r\n\r\n // Regras - Invoice //\r\n\r\n $scope.isCiscoBR = function (vendor, codERP) {\r\n return (vendor.toUpperCase() === 'CISCO' || vendor.toUpperCase() === 'CISCO BR') && codERP === 1;\r\n }; \r\n\r\n $scope.getLastMileTracking = function (evt, order) {\r\n\r\n var params = {\r\n orderCode: order.salesOrder,\r\n partnumber: order.originPartnumber\r\n };\r\n\r\n $rootScope.loading = true;\r\n OrderAPI.GetLastMileTracking(params, function (response) {\r\n $rootScope.loading = false;\r\n $modalFactory.showLastMileModal(evt, response, console.info);\r\n }, $helper.throwException);\r\n };\r\n\r\n $scope.displayCustomsClearance = function() {\r\n return ![$codErp.Cala,$codErp.Argentina,$codErp.Chile,$codErp.Peru,$codErp.Colombia,$codErp.Equador].includes($scope.codERP);\r\n };\r\n\r\n // Init\r\n fnApplyFilter();\r\n\r\n (function () {\r\n\r\n $translate(['ReportedUser', 'ReportedDate']).then(function(translations){\r\n $scope.translations = translations;\r\n });\r\n })();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.reseller-order')\r\n .controller('OrderHistoryDetailCtrl', OrderHistoryDetailCtrl);\r\n\r\n /** @ngInject */\r\n function OrderHistoryDetailCtrl (\r\n $rootScope,\r\n $scope,\r\n $helper,\r\n $routeParams,\r\n $layout,\r\n $modalFactory,\r\n $location,\r\n $timeout,\r\n OrderAPI\r\n ) {\r\n\r\n $scope.header = {};\r\n $scope.items = {};\r\n\r\n $scope.formatDate = function (value, vendor) {\r\n\r\n if (vendor && (vendor.toUpperCase() === 'CISCO' || vendor.toUpperCase() === 'CISCO BR')) {\r\n return '-';\r\n }\r\n else {\r\n return new Date(value).toLocaleDateString();\r\n }\r\n };\r\n\r\n $scope.reportDelay = function(item) {\r\n \r\n if (item.isDelayedReported) {\r\n alert('Atraso jĆ” reportado');\r\n return;\r\n }\r\n\r\n $modalFactory.sendEmail(null, {order: item, token: $location.search().token}); \r\n }\r\n\r\n function afterGetHistoryDetailSuccess (response) {\r\n\r\n if (response.success === false) return;\r\n\r\n $scope.header = response.header;\r\n $scope.items = response.items;\r\n\r\n $rootScope.loading = false;\r\n\r\n $timeout(function () {\r\n $('.items-list__item').each(function (pos, el) {\r\n $(el).find('.item-data__step--has-date.item-data__step--is-real').last().addClass('item-data__step--current');\r\n });\r\n\r\n bindFeatures();\r\n }, 1);\r\n }\r\n\r\n function afterGetHistoryDetailError (response) {\r\n\r\n $helper.throwException(response, {\r\n button: false,\r\n closeModal: false,\r\n closeOnClickOutside: false\r\n });\r\n }\r\n\r\n function bindFeatures() {\r\n\r\n var $main = $('.page-reseller-order-detail main');\r\n var $header = $main.find('.reseller-order-detail__header');\r\n var $list = $main.find('.reseller-order-detail__items-list');\r\n var hasClass = false;\r\n var lastScrollTop = $main.scrollTop();\r\n var marginTop = 0;\r\n\r\n $main.on('click', '.item-data__icon-remarks', function () {\r\n\r\n var $remark = $(this)\r\n .closest('.items-list__item')\r\n .find('.item-remarks');\r\n\r\n $remark.toggleClass('item-remarks--visible');\r\n \r\n $layout.toggleOverlay(true);\r\n });\r\n\r\n $rootScope.$on('overlayclicked', function () {\r\n\r\n $main.find('.item-remarks--visible').removeClass('item-remarks--visible');\r\n\r\n });\r\n\r\n $main.scroll(function() {\r\n\r\n marginTop = $main.scrollTop() - lastScrollTop;\r\n\r\n hasClass = $header.hasClass('reseller-order-detail__header--minified');\r\n\r\n if (hasClass && $main.scrollTop() < 140) {\r\n $header.removeClass('reseller-order-detail__header--minified');\r\n $list.css('margin-top', 0);\r\n }\r\n else if (!hasClass && $main.scrollTop() > 140) {\r\n $header.addClass('reseller-order-detail__header--minified');\r\n $list.css('margin-top', marginTop);\r\n }\r\n });\r\n }\r\n\r\n function init () {\r\n\r\n $rootScope.loading = true;\r\n\r\n OrderAPI.GetOrderHistoryDetail({ orderCode: $routeParams.orderCode, token: $routeParams.token }, afterGetHistoryDetailSuccess, afterGetHistoryDetailError);\r\n }\r\n\r\n init();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.reseller-order')\r\n .controller('OrderReport205Ctrl', OrderReport205Ctrl);\r\n\r\n /** @ngInject */\r\n function OrderReport205Ctrl (\r\n $rootScope,\r\n $scope, \r\n $filter,\r\n $helper,\r\n $location,\r\n $mdDialog,\r\n $routeParams,\r\n $timeout,\r\n $translate,\r\n filterFilter,\r\n OrderAPI,\r\n rangeDateFilter,\r\n SweetAlertFactory,\r\n toastr\r\n ) {\r\n\r\n $scope.codERP = Number($rootScope.user.CodERP || 2);\r\n\r\n $rootScope.loading = true;\r\n \r\n $scope.remarks = null;\r\n $scope.search = null;\r\n $scope.orderReport205List = [];\r\n $scope.viewDataFiltered = [];\r\n $scope.filter = {};\r\n\r\n $scope.scrollTarget = function () {\r\n window.setTimeout(function () {\r\n var target = $(\".table-thead\");\r\n $(\".table-tbody\").scroll(function () {\r\n target.prop(\"scrollLeft\", this.scrollLeft);\r\n });\r\n var $th = $(\".table-thead table thead tr th\").not('.fixed-date, .fixed-obs');\r\n var $td = $(\".table-tbody table tbody tr:first-child\").find('td').not('.fixed-date, .fixed-obs');\r\n var px = 0;\r\n for (var i = 0; i < $td.length; i++) {\r\n px = $($td[i]).outerWidth();\r\n if (px > 120) {\r\n $th[i].style.width = px + 'px';\r\n $th[i].style.minWidth = px + 'px';\r\n }\r\n }\r\n }, 500);\r\n };\r\n\r\n $scope.formatUnknown = function (value) {\r\n return value || '-';\r\n };\r\n\r\n $scope.formatDate = function (value) {\r\n return value ? new Date(value).toLocaleDateString() : ' - ';\r\n };\r\n\r\n $scope.formatDatePreview = function (value) {\r\n return value ? new Date(value).toLocaleDateString() : ' To be defined ';\r\n };\r\n\r\n $scope.onOrderBy = function (evt, column) {\r\n $scope.filter.orderBy = column;\r\n $scope.ASC = !$scope.ASC;\r\n $scope.orderReport205List = _.orderBy($scope.orderReport205List, column, $scope.ASC ? 'asc' : 'desc');\r\n };\r\n\r\n var afterGetOrderReport205 = function (response) {\r\n\r\n $rootScope.loading = false;\r\n\r\n if (response.sucesso === false || response.success === false) {\r\n\r\n $helper.throwException(response);\r\n\r\n } else if (_.isEmpty(response) && _.isEmpty(response.orderList)) {\r\n\r\n SweetAlertFactory.showTranslation('Error.Order.EmptyOrdersList');\r\n\r\n } else {\r\n\r\n $scope.orderReport205List = response.orderList;\r\n\r\n window.setTimeout($scope.scrollTarget, 500);\r\n\r\n }\r\n };\r\n\r\n var getOrderReport205 = function () {\r\n OrderAPI.listOrdersByReport205(afterGetOrderReport205, $helper.throwException);\r\n };\r\n\r\n var afterDownload = function (data) {\r\n $rootScope.loading = false;\r\n\r\n window.open(baseApi + data.url, \"_blank\");\r\n\r\n OrderAPI.removeXlsFile({ key: data.value }, \r\n function (data) { console.log('removeXlsFile'); }, \r\n $helper.throwException\r\n );\r\n };\r\n\r\n $scope.onDownload = function (evt) {\r\n $rootScope.loading = true;\r\n\r\n var viewDataFiltered = rangeDateFilter(\r\n filterFilter($scope.orderReport205List, $scope.filter.search),\r\n 'featuringPreview', $scope.filter.minDate, $scope.filter.maxDate\r\n );\r\n\r\n OrderAPI.orderReport205Excel(\r\n { orderList: viewDataFiltered, culture: $translate.use() }, \r\n afterDownload, $helper.throwException\r\n );\r\n };\r\n\r\n $scope.onOpenCommentsModal = function (evt, remarks) {\r\n SweetAlertFactory.show(remarks);\r\n };\r\n\r\n function showPopup (message) {\r\n var alert = $mdDialog.alert({\r\n title: 'TD SYNNEX',\r\n textContent: message,\r\n ok: 'OK'\r\n });\r\n $mdDialog.show(alert);\r\n }\r\n\r\n getOrderReport205();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.reseller-order')\r\n .controller('OrderTrackerCtrl', OrderTrackerCtrl);\r\n\r\n /** @ngInject */\r\n function OrderTrackerCtrl (\r\n $rootScope,\r\n $scope, \r\n $filter,\r\n $helper,\r\n $location,\r\n $mdDialog,\r\n $routeParams,\r\n $session,\r\n $timeout,\r\n $translate,\r\n filterFilter,\r\n OrderAPI,\r\n rangeDateFilter,\r\n SweetAlertFactory,\r\n toastr\r\n ) {\r\n\r\n $rootScope.loading = true;\r\n \r\n $scope.remarks = null;\r\n $scope.search = null;\r\n $scope.orderTrackerList = [];\r\n $scope.viewDataFiltered = [];\r\n $scope.filter = {};\r\n $scope.isEmpty = _.isEmpty;\r\n\r\n $scope.scrollTarget = function () {\r\n window.setTimeout(function () {\r\n var target = $(\".table-thead\");\r\n $(\".table-tbody\").scroll(function () {\r\n target.prop(\"scrollLeft\", this.scrollLeft);\r\n });\r\n var $th = $(\".table-thead table thead tr th\").not('.fixed-date, .fixed-obs');\r\n var $td = $(\".table-tbody table tbody tr:first-child\").find('td').not('.fixed-date, .fixed-obs');\r\n var px = 0;\r\n for (var i = 0; i < $td.length; i++) {\r\n px = $($td[i]).outerWidth();\r\n if (px > 120) {\r\n $th[i].style.width = px + 'px';\r\n $th[i].style.minWidth = px + 'px';\r\n }\r\n }\r\n }, 500);\r\n };\r\n\r\n $scope.formatUnknown = function (value) {\r\n return value || '-';\r\n };\r\n\r\n $scope.formatDate = function (value, vendor) {\r\n if (!value) {\r\n if (!vendor || vendor.toUpperCase() === 'CISCO') {\r\n return '-';\r\n } else {\r\n return 'N/A';\r\n }\r\n } else {\r\n return new Date(value).toLocaleDateString();\r\n }\r\n };\r\n\r\n $scope.isRealDate = function (value) {\r\n return value ? true : false;\r\n };\r\n\r\n $scope.onOrderBy = function (evt, column) {\r\n $scope.filter.orderBy = column;\r\n $scope.ASC = !$scope.ASC;\r\n $scope.orderTrackerList = _.orderBy($scope.orderTrackerList, column, $scope.ASC ? 'asc' : 'desc');\r\n };\r\n\r\n var fillWithCustomProperties = function (orderTrackerList) {\r\n for (var i = 0; i < orderTrackerList.length; i++) {\r\n orderTrackerList[i].orderCode = orderTrackerList[i].salesOrder + '\\n' + orderTrackerList[i].customerOrder;\r\n orderTrackerList[i].invoicePrevision = orderTrackerList[i].actualPrevisionDate || orderTrackerList[i].originalPrevisionDate;\r\n orderTrackerList[i].manufacturingFinish = orderTrackerList[i].onHandRealDate || orderTrackerList[i].onHandEstimatedDate;\r\n orderTrackerList[i].arrivalForecast = orderTrackerList[i].inCountryRealDate || orderTrackerList[i].inCountryEstimatedDate;\r\n orderTrackerList[i].customsClearance = orderTrackerList[i].transitToStockRealDate || orderTrackerList[i].transitToStockEstimatedDate;\r\n \r\n }\r\n return orderTrackerList;\r\n };\r\n\r\n var afterGetOrderTracking = function (response) {\r\n \r\n if (response.success === false) {\r\n\r\n $scope.orderTrackerList = [];\r\n SweetAlertFactory.show(response.errorMessage);\r\n\r\n } else if (response.orderTrackerList.length === 0) {\r\n\r\n SweetAlertFactory.showTranslation('Error.Order.EmptyOrdersList');\r\n\r\n } else {\r\n\r\n $scope.orderTrackerList = fillWithCustomProperties(response.orderTrackerList);\r\n window.setTimeout($scope.scrollTarget, 500);\r\n\r\n }\r\n $rootScope.loading = false;\r\n };\r\n\r\n var getOrderTracking = function () {\r\n var params = { culture: $session.get('locale') };\r\n OrderAPI.GetOrderTracking(params, afterGetOrderTracking, $helper.throwException);\r\n };\r\n\r\n var afterDownload = function (response) {\r\n $rootScope.loading = false;\r\n\r\n if (response.sucesso === false || response.success === false) {\r\n\r\n $helper.throwException(response);\r\n\r\n } else {\r\n \r\n window.open(baseApi + response.url, \"_blank\");\r\n\r\n OrderAPI.removeXlsFile({ key: response.value }, \r\n function (response) { console.log('removeXlsFile'); }, \r\n $helper.throwException\r\n );\r\n }\r\n };\r\n\r\n $scope.onDownload = function (evt) {\r\n $rootScope.loading = true;\r\n\r\n var viewDataFiltered = rangeDateFilter(\r\n filterFilter($scope.orderTrackerList, $scope.filter.search),\r\n 'invoicePrevision', $scope.filter.minDate, $scope.filter.maxDate\r\n );\r\n\r\n OrderAPI.orderTrackerExcel(\r\n { orderTrackerList: viewDataFiltered, culture: $translate.use() }, \r\n afterDownload, $helper.throwException\r\n );\r\n };\r\n\r\n $scope.onOpenCommentsModal = function (evt, remarks) {\r\n\r\n SweetAlertFactory.show(remarks.join(', '));\r\n\r\n };\r\n\r\n getOrderTracking();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.reseller-order')\r\n .controller('ResellerOrderCtrl', ResellerOrderCtrl);\r\n\r\n /** @ngInject */\r\n function ResellerOrderCtrl (\r\n $rootScope, \r\n $scope, \r\n $helper,\r\n $location, \r\n $timeout, \r\n $translate,\r\n OrderAPI,\r\n SweetAlertFactory,\r\n toastr\r\n ) {\r\n\r\n //////////////////////////////////\r\n /// Status de Pedidos Intranet ///\r\n //////////////////////////////////\r\n // Proposta '0' //\r\n // EmAnalisePeloFinanceiro '1' //\r\n // PrePedido '2' //\r\n // Cancelado '3' //\r\n // EmAnalisePorOperacoes '4' //\r\n // EmBacklog '5' //\r\n // Entregue '6' //\r\n // Obsoleto '7' //\r\n // NegadoPeloFinanceiro '8' //\r\n //////////////////////////////////\r\n\r\n $rootScope.loading = true;\r\n \r\n // Toastr\r\n var toastrMessages = {};\r\n var keys = [\r\n 'Error.Order.EmptyOrdersList',\r\n 'Warning.Order.FillOrderDate',\r\n 'Warning.Order.FillOrderValue'\r\n ];\r\n\r\n var getToastrTranslations = function () {\r\n $translate(keys).then(function (translations) {\r\n toastrMessages.emptyOrdersList = translations['Error.Order.EmptyOrdersList'];\r\n toastrMessages.fillOrderDate = translations['Warning.Order.FillOrderDate'];\r\n toastrMessages.fillOrderValue = translations['Warning.Order.FillOrderValue'];\r\n });\r\n };\r\n \r\n $scope.$on('$localeChangeSuccess', getToastrTranslations);\r\n\r\n // Paginate\r\n $scope.limitOptions = [25, 50, 75, 100]\r\n $scope.limit = $scope.limitOptions[0];\r\n\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n $scope.exibitionCount = 0;\r\n $scope.orderCount = 0;\r\n\r\n // App\r\n $scope.dateOrder = null;\r\n $scope.orderStatusLst = [\r\n { value: 0, text: 'Selecionar' },\r\n // { value: 1, text: 'Status.Pedido.EmAnalisePeloFinanceiro' },\r\n // { value: 2, text: 'Status.Pedido.PrePedido' },\r\n // { value: 3, text: 'Status.Pedido.Cancelado' },\r\n // { value: 4, text: 'Status.Pedido.EmAnalisePorOperacoes' },\r\n { value: 4, text: 'PedidoEmAnalise' },\r\n { value: 5, text: 'Status.Pedido.EmBacklog' },\r\n { value: 6, text: 'Status.Pedido.Entregue' }\r\n // { value: 7, text: 'Status.Pedido.Obsoleto' }, \r\n // { value: 8, text: 'Status.Pedido.NegadoPeloFinanceiro' }\r\n ];\r\n $scope.orderStatus = $scope.orderStatusLst[0];\r\n\r\n $scope.getNameStatusOrder = function (id, dateAccepted) {\r\n return $scope.orderStatusLst.filter(function (v) { return v.value == id })[0].text;\r\n };\r\n\r\n $scope.ASC = false;\r\n $scope.filter = {};\r\n $scope.orderList = [];\r\n $scope.minOrderValue = 0;\r\n $scope.maxOrderValue = 100;\r\n $scope.dateOrderArr = [];\r\n $scope.classeTrocada = false;\r\n $scope.listPartNumbersByOv = [];\r\n $scope.modalComments = null;\r\n \r\n $scope.slider = { \r\n minValue: $scope.minOrderValue, \r\n maxValue: $scope.maxOrderValue, \r\n options: { \r\n id: 'slider-id',\r\n floor: $scope.minOrderValue, \r\n ceil: $scope.maxOrderValue,\r\n hideLimitLabels: true,\r\n translate: function (value) { \r\n return 'R$' + value \r\n } \r\n } \r\n };\r\n\r\n var afterDownload = function (data) {\r\n $rootScope.loading = false;\r\n\r\n window.open(baseApi + data.url, \"_blank\");\r\n\r\n OrderAPI.removeXlsFile({ key: data.value }, \r\n function (data) { console.log('removeXlsFile'); }, \r\n $helper.throwException\r\n );\r\n };\r\n\r\n $scope.onDownload = function (evt) {\r\n $rootScope.loading = true;\r\n $scope.filter.asc = $scope.ASC;\r\n $scope.filter.culture = $translate.use();\r\n OrderAPI.resellerOrderExcel($scope.filter, afterDownload, $helper.throwException);\r\n };\r\n\r\n $scope.formatDate = function (value) {\r\n return value ? value.toLocaleDateString() : null;\r\n };\r\n\r\n $scope.formatUnknown = function (value) {\r\n return value || '-';\r\n };\r\n\r\n $scope.formatDateAccepted = function (value) {\r\n return value ? new Date(value).toLocaleDateString() : ' - ';\r\n // return value ? new Date(value).toLocaleDateString() : 'PedidoEmAnalise';\r\n };\r\n\r\n $scope.formatDeliveryDate = function (value) {\r\n return value ? new Date(value).toLocaleDateString() : 'Processando';\r\n };\r\n\r\n $scope.changeOrderStatus = function (evt, reset) {\r\n if (!_.isEmpty($scope.orderStatus)) {\r\n $scope.filter.orderStatus = $scope.orderStatus.value || 0;\r\n } else {\r\n $scope.filter.orderStatus = 0;\r\n }\r\n $scope.listOrders(evt, reset);\r\n };\r\n\r\n $scope.changeOrderDate = function (evt, reset) {\r\n $scope.filter.minOrderDate = $scope.formatDate($scope.minOrderDate);\r\n $scope.filter.maxOrderDate = $scope.formatDate($scope.maxOrderDate);\r\n\r\n if (_.isEmpty($scope.filter.minOrderDate) || _.isEmpty($scope.filter.maxOrderDate)) {\r\n toastr.warning(toastrMessages.fillOrderDate);\r\n } else {\r\n $scope.listOrders(evt, reset);\r\n }\r\n };\r\n\r\n $scope.changeOrderValue = function (evt, reset) {\r\n var minValue = $scope.filter.minOrderValue || 0;\r\n var maxValue = $scope.filter.maxOrderValue || 0;\r\n\r\n if (maxValue > 0 && minValue > maxValue) {\r\n delete $scope.filter.maxOrderValue;\r\n toastr.warning(toastrMessages.fillOrderValue);\r\n } else {\r\n $scope.listOrders(evt, reset);\r\n }\r\n };\r\n\r\n $scope.listOrders = function (evt, reset) {\r\n $rootScope.loading = true;\r\n $scope.filter.asc = $scope.ASC;\r\n if (reset) $scope.offset = 0; \r\n $scope.filter.limit = $scope.limit;\r\n $scope.filter.offset = $scope.offset;\r\n OrderAPI.listOrders($scope.filter, afterListOrders, $helper.throwException);\r\n };\r\n\r\n var init = function () {\r\n getToastrTranslations();\r\n OrderAPI.listOrders(afterListOrders, $helper.throwException);\r\n };\r\n\r\n var afterListOrders = function (data) {\r\n $rootScope.loading = false;\r\n\r\n if (data.orderList.length > 0) {\r\n $scope.orderList = data.orderList;\r\n $scope.orderCount = data.totalRows;\r\n } else {\r\n $scope.orderList = [];\r\n toastr.error(toastrMessages.emptyOrdersList);\r\n }\r\n };\r\n\r\n $scope.orderBy = function (evt, column) {\r\n $scope.filter.orderBy = column;\r\n $scope.ASC = !$scope.ASC;\r\n $scope.listOrders(evt, true);\r\n };\r\n\r\n $scope.formatStatusOrder = function (OrderValue) {\r\n if (OrderValue === 'Pedido em Backlog') {\r\n $scope.classe = 'fcor-azul';\r\n }\r\n else {\r\n $scope.classe = 'fcor-preta';\r\n }\r\n return $scope.OrderValue;\r\n };\r\n\r\n //PARTE AONDE TRABALHAMOS A TABELA EXPANDIDA PARA EXIBIR OS ITENS DE CADA PEDIDO\r\n $scope.dayDataCollapseFn = function () {\r\n $scope.dayDataCollapse = [];\r\n for (var i = 0; i < $scope.orderList.length; i += 1) {\r\n $scope.dayDataCollapse.push(false);\r\n }\r\n };\r\n\r\n $scope.selectTableRow = function (index, order) {\r\n order.showdetails = !order.showdetails;\r\n OrderAPI.listPartNumbers({ ov: order.orderCode }, function (data) {\r\n $scope.listPartNumbersByOv = data;\r\n }, $helper.throwException);\r\n\r\n if (typeof $scope.dayDataCollapse === 'undefined') {\r\n $scope.dayDataCollapseFn();\r\n }\r\n $scope.dayDataCollapse[index] = !($scope.dayDataCollapse[index]);\r\n };\r\n\r\n // Paginate\r\n $scope.nextPage = function (evt) {\r\n $scope.lastOffset = $scope.offset;\r\n $scope.offset = $scope.offset + $scope.limit;\r\n $scope.listOrders(evt);\r\n };\r\n\r\n $scope.prevPage = function (evt) {\r\n $scope.lastOffset = $scope.offset;\r\n $scope.offset = $scope.offset - $scope.limit;\r\n $scope.listOrders(evt);\r\n };\r\n\r\n $scope.hasNextPage = function (evt) {\r\n return $scope.offset + $scope.limit >= $scope.orderCount;\r\n };\r\n\r\n $scope.changeLimit = function (evt, limit) {\r\n $scope.limit = limit;\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n $scope.listOrders(evt);\r\n };\r\n\r\n // Modals\r\n $scope.onOpenCommentsModal = function (evt, comments) {\r\n $scope.modalComments = comments;\r\n $('#modal-comments').modal('show');\r\n };\r\n\r\n $scope.onCloseCommentsModal = function (evt) {\r\n $scope.modalComments = null;\r\n $('#modal-comments').modal('hide');\r\n };\r\n\r\n init();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.reseller-order')\r\n .controller('SalesOrderLicenseCtrl', SalesOrderLicenseCtrl);\r\n\r\n /** @ngInject */\r\n function SalesOrderLicenseCtrl (\r\n $rootScope,\r\n $scope,\r\n $helper,\r\n $session,\r\n $auth,\r\n $translate,\r\n $formatter,\r\n DownloadLicenseLogAPI,\r\n OrderLicenseAPI,\r\n SweetAlertFactory\r\n ) {\r\n \r\n $scope.noLicense = false;\r\n $rootScope.loading = true;\r\n \r\n // Paginate\r\n $scope.limitOptions = [15, 25, 50]\r\n $scope.limit = $scope.limitOptions[0];\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n $scope.totalRows = 0;\r\n\r\n $scope.urlCiscoWelcomekit = baseApi + 'Download/CiscoWelcomekit';\r\n $scope.urlCiscoSmartnet = 'http://br-comstor.com.br/2019/3804-f7g4e2/guia_smart_cisco_account.pdf';\r\n $scope.hasCiscoSmartnet = false;\r\n $scope.hasCisco = false;\r\n\r\n $scope.viewDataFiltered = [];\r\n $scope.licenseHeaderList = [];\r\n $scope.licenseList = [];\r\n $scope.licenseMail = {};\r\n \r\n // Filters and Orders\r\n $scope.orderCode = null;\r\n $scope.customerCode = null;\r\n $scope.endUser = null;\r\n $scope.vendorCode = null;\r\n $scope.orderBy = null;\r\n $scope.ASC = false;\r\n\r\n Object.assign($scope, $session.get('filter.licenses') || {});\r\n\r\n $scope.onOrderBy = function (evt, column) {\r\n $scope.orderBy = column;\r\n $scope.ASC = !$scope.ASC;\r\n $scope.licenseList = _.orderBy($scope.licenseList, column, $scope.ASC ? 'asc' : 'desc');\r\n };\r\n\r\n $scope.formatDate = $formatter.formatDate;\r\n $scope.formatDateTime = $formatter.formatDateTime;\r\n $scope.removeSpecialCharacters = $formatter.removeSpecialCharacters;\r\n $scope.formatUnknown = $formatter.formatUnknown;\r\n\r\n $scope.onToggleDetails = function (evt, header) {\r\n var showdetails = !header.showdetails;\r\n $scope.licenseHeaderList.forEach(function (header) {\r\n header.showdetails = false;\r\n });\r\n header.showdetails = showdetails;\r\n };\r\n\r\n $scope.FormatoData = $rootScope.getFormatoData();\r\n\r\n $scope.onDownloadLicense = function (evt, header, license) {\r\n $rootScope.loading = true;\r\n \r\n fillLicenseMail(header, license);\r\n\r\n var payload = {\r\n tipoLicense: license.typeDistributionLicense,\r\n fileName: license.fileName,\r\n codERP: $rootScope.codERP,\r\n orderCode: license.orderCode,\r\n PO: license.po,\r\n codPO: license.codPO,\r\n codPONew: license.codPONew\r\n };\r\n\r\n license.codERP = $rootScope.codERP;\r\n\r\n if (!license.quoteNumber) {\r\n \r\n OrderLicenseAPI.DownloadLicense(license, fnAfterDownload, $helper.throwException);\r\n \r\n } else {\r\n \r\n payload.quoteNumbers = license.quoteNumber;\r\n payload.partnumber = license.partnumber;\r\n \r\n OrderLicenseAPI.DownloadContract(payload, fnAfterDownload, function (error) {\r\n OrderLicenseAPI.DownloadLicense(license, fnAfterDownload, $helper.throwException);\r\n });\r\n }\r\n \r\n // INNO-2152\r\n fnSaveLog(license);\r\n };\r\n\r\n $scope.onDownloadLicenseLote = function (evt, header) {\r\n $rootScope.loading = true;\r\n \r\n fillLicenseMail(header);\r\n\r\n header.licenseItemLst.forEach(function (license) {\r\n license.codERP = $rootScope.codERP;\r\n });\r\n\r\n\r\n if (!header.quoteNumber) {\r\n OrderLicenseAPI.DownloadLicenseLote(header.licenseItemLst, fnAfterDownload, $helper.throwException);\r\n } else {\r\n OrderLicenseAPI.DownloadContract({ quoteNumbers: header.quoteNumber }, fnAfterDownload, function (error) {\r\n OrderLicenseAPI.DownloadLicenseLote(header.licenseItemLst, fnAfterDownload, $helper.throwException);\r\n });\r\n }\r\n\r\n // INNO-2152\r\n header.licenseItemLst.forEach(function (license) {\r\n fnSaveLog(license);\r\n });\r\n };\r\n\r\n function fnAfterDownload (response) {\r\n var url = baseApi + response.url;\r\n window.open(url, \"_blank\");\r\n fnSendEmail();\r\n }\r\n\r\n function fnSendEmail() {\r\n $scope.licenseMail.culture = $translate.use();\r\n OrderLicenseAPI.Send($scope.licenseMail, fnAfterfnSendEmail, $helper.throwException);\r\n }\r\n\r\n function fillLicenseMail(header, license) {\r\n $scope.licenseMail = {}\r\n // User Info\r\n var user = $auth.getCurrentUser();\r\n if (!_.isEmpty(user)) {\r\n $scope.licenseMail.downloadedBy = user.Name;\r\n $scope.licenseMail.emailTo = user.Email;\r\n $scope.licenseMail.customerId = user.CustomerId;\r\n }\r\n // Header Info\r\n $scope.licenseMail.orderCode = header.orderCode;\r\n $scope.licenseMail.customerCode = header.customerCode;\r\n $scope.licenseMail.endUser = header.endUser;\r\n $scope.licenseMail.vendorCode = header.vendorCode;\r\n // License Info\r\n if (license) {\r\n $scope.licenseMail.partnumber = license.partnumber;\r\n $scope.licenseMail.quantity = license.quantity;\r\n $scope.licenseMail.downloadType = 'license'\r\n } else {\r\n $scope.licenseMail.downloadType = 'batch'\r\n }\r\n }\r\n\r\n function fnAfterfnSendEmail (response) {\r\n $rootScope.loading = false;\r\n $translate('EmailSentTo').then(function (message) {\r\n\r\n message += '\\n';\r\n message += $rootScope.user.Email;\r\n\r\n SweetAlertFactory.show(message);\r\n });\r\n }\r\n\r\n function fnAfterListLicenses (response) {\r\n if (!response.totalRows) {\r\n SweetAlertFactory.showTranslation('NoLicenseAvailableForDownload');\r\n $scope.licenseHeaderList = [];\r\n $scope.noLicense = true;\r\n } else {\r\n\r\n $scope.hasCisco = response.hasCisco;\r\n $scope.hasCiscoSmartnet = response.hasCiscoSmartnet;\r\n $scope.totalRows = response.totalRows;\r\n $scope.noLicense = false;\r\n\r\n $scope.licenseHeaderList = response.licenseHeaderLst.map(function (header) {\r\n header.showAllDownload = header.licenseItemLst.filter(function (license) {\r\n return !_.isEmpty(license.fileName);\r\n }).length > 0;\r\n return header;\r\n });\r\n } \r\n\r\n $rootScope.loading = false;\r\n }\r\n\r\n function fnListByFilter () {\r\n $rootScope.loading = true;\r\n\r\n var filter = {\r\n limit: $scope.limit,\r\n offset: $scope.offset,\r\n orderCode: $scope.orderCode,\r\n customerCode: $scope.customerCode,\r\n endUser: $scope.endUser,\r\n codVendor: $scope.vendorCode,\r\n orderBy: $scope.orderBy,\r\n asc: $scope.ASC\r\n };\r\n\r\n $session.set('filter.licenses', filter);\r\n \r\n OrderLicenseAPI.ListLicensesByFilter(filter, fnAfterListLicenses, $helper.throwException);\r\n }\r\n \r\n function fnSaveLog (license) {\r\n\r\n var params = {\r\n licenseIdentifier: fnMakeLicenseIdentifier(license),\r\n IpAddress: $rootScope.ipAddress,\r\n }; \r\n\r\n DownloadLicenseLogAPI.saveLog(\r\n params,\r\n function (response) {\r\n $scope.ListBy(license);\r\n },\r\n $helper.throwException\r\n );\r\n };\r\n \r\n function fnMakeLicenseIdentifier(license){\r\n return $scope.removeSpecialCharacters(license.orderCode + license.partnumber);\r\n }\r\n\r\n $scope.ListBy = function (license){\r\n\r\n var params = { licenseIdentifier: fnMakeLicenseIdentifier(license) };\r\n\r\n DownloadLicenseLogAPI.ListBy(\r\n params,\r\n function (response) {\r\n license.logs = response.downloadLicenseLogs; \r\n }, \r\n $helper.throwException\r\n );\r\n\r\n return license;\r\n };\r\n\r\n function fnInit () {\r\n fnListByFilter();\r\n }\r\n\r\n // Paginate\r\n $scope.nextPage = function (evt) {\r\n $scope.lastOffset = $scope.offset;\r\n $scope.offset = $scope.offset + $scope.limit;\r\n fnListByFilter();\r\n };\r\n\r\n $scope.prevPage = function (evt) {\r\n $scope.lastOffset = $scope.offset;\r\n $scope.offset = $scope.offset - $scope.limit;\r\n fnListByFilter();\r\n };\r\n\r\n $scope.hasNextPage = function (evt) {\r\n return $scope.offset + $scope.limit >= $scope.totalRows;\r\n };\r\n\r\n $scope.changeLimit = function (evt, limit) {\r\n $scope.limit = limit || $scope.limitOptions[0];\r\n $scope.offset = 0;\r\n $scope.lastOffset = 0;\r\n fnListByFilter();\r\n };\r\n\r\n $scope.onOpenCommentsModal = function (evt, comments) {\r\n SweetAlertFactory.show(comments);\r\n };\r\n\r\n fnInit();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.rma')\r\n .controller('RmaCtrl', RmaCtrl);\r\n\r\n /** @ngInject */\r\n function RmaCtrl (\r\n $rootScope,\r\n $scope,\r\n $anchorScroll,\r\n $compile,\r\n $helper,\r\n $localeService,\r\n $mdDialog,\r\n $session,\r\n $auth,\r\n $translate,\r\n AlertFactory,\r\n filterFilter,\r\n ProposalAPI,\r\n RmaAPI,\r\n SweetAlertFactory\r\n ) {\r\n var currentFileSize = 0;\r\n $scope.limitSize = 15;\r\n\r\n $localeService.setLocale($session.get('locale'));\r\n\r\n $scope.rma = {};\r\n $scope.showClearAttachments = false;\r\n $scope.returnReasonSelected = null;\r\n $scope.product = {};\r\n $scope.productList = [];\r\n $scope.fileList = [];\r\n $scope.vendorList = [];\r\n $scope.occurrenceList = [\r\n { value: 1, key: 'ReturnOfPurchase' },\r\n { value: 2, key: 'DefectiveProduct' },\r\n { value: 3, key: 'FaultyProduct' },\r\n { value: 4, key: 'MissingProduct' },\r\n // { value: 5, key: 'BillAgain' },\r\n ];\r\n $scope.returnReasonList = [\r\n { value: 1, key: 'rma.PartialWithdrawal' },\r\n { value: 2, key: 'rma.TotalWithdrawal' }\r\n ];\r\n $scope.taxRefundList = [\r\n { value: 1, key: 'rma.InvoiceReturn' },\r\n { value: 2, key: 'rma.Refusal' },\r\n { value: 3, key: 'rma.FiscalDocument' }\r\n ];\r\n\r\n $scope.totalSizeFiles = 0;\r\n\r\n $scope.sendRma = function (frmRma) {\r\n\r\n var taxRefund = Number($('#taxRefund').val() || 1)\r\n var returnReason = Number($('#returnReason').val() || 1)\r\n var occurrenceId = Number($scope.occurrenceSelected);\r\n\r\n if (frmRma.$invalid) {\r\n\r\n $anchorScroll();\r\n\r\n SweetAlertFactory.showTranslation('InvalidForm');\r\n\r\n } else if ((occurrenceId === 1 || occurrenceId === 3) && $scope.fileList.length === 0) {\r\n\r\n $anchorScroll();\r\n\r\n SweetAlertFactory.showTranslation('InvalidAttachmentList');\r\n\r\n } else if (occurrenceId !== 5 && returnReason !== 2 && $scope.productList.length === 0) {\r\n\r\n $anchorScroll();\r\n\r\n SweetAlertFactory.showTranslation('InvalidProductList');\r\n\r\n } else if (!$scope.rma.codVendor) {\r\n\r\n $anchorScroll();\r\n\r\n SweetAlertFactory.showTranslation('InvalidVendor');\r\n\r\n } else {\r\n\r\n $rootScope.loading = true;\r\n\r\n $scope.rma.fileList = $scope.fileList;\r\n $scope.rma.productList = $scope.productList;\r\n $scope.rma.occurrenceId = occurrenceId;\r\n\r\n switch ($scope.rma.occurrenceId) {\r\n case 1: $scope.rma.occurrenceText = 'DevoluĆ§Ć£o de Compra'; break;\r\n case 2: $scope.rma.occurrenceText = 'Produto com Defeito'; break;\r\n case 3: $scope.rma.occurrenceText = 'Produto com Avaria'; break;\r\n case 4: $scope.rma.occurrenceText = 'Produto Faltante'; break;\r\n case 5: $scope.rma.occurrenceText = 'Refaturamento'; break;\r\n }\r\n \r\n switch (returnReason) {\r\n case 1: $scope.rma.returnReason = 'DesistĆŖncia de Compra Parcial'; break;\r\n case 2: $scope.rma.returnReason = 'DesistĆŖncia de Compra Total'; break;\r\n }\r\n\r\n switch (taxRefund) {\r\n case 1: $scope.rma.taxRefund = 'Nota Fiscal de DevoluĆ§Ć£o'; break;\r\n case 2: $scope.rma.taxRefund = 'Recusa'; break;\r\n case 3: $scope.rma.taxRefund = 'Documento Fiscal'; break;\r\n }\r\n\r\n RmaAPI.Send($scope.rma, fnAfterSendRma, $helper.throwException);\r\n }\r\n };\r\n\r\n $scope.$on(\"addFile\", function () {\r\n $scope.$apply(function () {\r\n \r\n $scope.totalSizeFiles += currentFileSize; \r\n $scope.totalSizeFiles = Number($scope.totalSizeFiles.toFixed(3));\r\n \r\n });\r\n });\r\n\r\n $scope.previewFiles = function (elementHTML) {\r\n $scope.$apply(function () {\r\n var $preview = document.querySelector('#preview');\r\n var files = document.querySelector('input[type=file]').files;\r\n \r\n currentFileSize = 0; \r\n \r\n for (var i = 0; i < files.length; i++) {\r\n currentFileSize += Number(((files[i].size)/1000)/1024);\r\n }\r\n\r\n if ($scope.totalSizeFiles + currentFileSize > $scope.limitSize) {\r\n SweetAlertFactory.showTranslation('rma.FileSizeAlert'); \r\n\r\n } else {\r\n var readAndPreview = function (file) {\r\n\r\n var reader = new FileReader();\r\n reader.addEventListener(\"load\", function () {\r\n \r\n var image = new Image();\r\n image.height = 64;\r\n image.title = file.name;\r\n \r\n \r\n if (/\\.(jpe?g|png|gif)$/i.test(file.name)) {\r\n image.src = this.result;\r\n } else if (/\\.(avi)$/i.test(file.name)) {\r\n image.src = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAG7AAABuwE67OPiAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAThQTFRF////4uLr8lVE4uXmwcbL8VZC4ubn4uXnsLe9tLvAtbzBwcfMytHYz9Xb0c7S1tvf3ODj3eDj4uXn5oh95sPA7nRl8VZC8VdD8VlF8VlG8VpG8VtH8VtI8VxJ8mFO8mFP8mJP8mRS8mVT82lX82pY821b825d829d829e83Ji9HZm9Hlp9H1u9YBx9YFy9YJz9YJ09YV39YZ49Yd59Yh69Yp99o6B9pCC9piL95mN956T+Kab+Kec+Kie+Kqg+Kuh+K+l+bKp+beu+bev+biw+bmw+buz+by0+r22+r62+r+4+sC5+sa/+sfA+8nD+83H+9HM/NXQ/NbR/NfS/NfT/NnV/N3Y/OHd/eTh/ern/ero/u3r/vDu/vDv/vX0/vj3/vj4//n4//r5//r6//z7//39//7+////DwStogAAAAh0Uk5TABo8psDJ5upYXiAEAAABsElEQVRYw+XX2VLCMBQGYLBaUXArGlSk7huI4r7gvu8rKoqioPi//xuYAgqKbXJar/SfaU7ORb5pL5pMXK7yuBVVs0i1SxB3rWYZj0hQNAEgElQhIBA0MWAtyACWghRgJcgBFoIkYC7IAqaCNGAmyAMmggioFwkiwOsRCCKgpU4gaELBa/0VmkSafKXYAsoFe0CZYBMoCXaBT8E28CHYB4qCA6AgOAHygiPAEJwBXHAIaE1OAe33gKoaRkhbawVAWs+FCoAR8x+AUH7sChVbnT9BCnD4GOFjZyrZlW9XMcWWctPyQAy44KU9jUWj7X7CJDtCXB64BhDldR3JAC9xo1CAKaR3cMknvRnw9+5IGS9CAW6w1pfFOJ9t4pyxeTwEScAs0jrbxRWf9r9ilCWwwihA4BYbuh55wwRvDrAXxnMPCZhDMQnejLxlTrHFKEAg+QEgxttjIDdIAmaQHdKN7OOMt2HghJGAsZflwmTgftsoK3fD+XYhHbX5M3X8l/2AuKn6HW7r/kbTg8UnlwaHQEPz7x9tfwhQaetV8tX3WxTy5ftrat0/XN8V6a9QlcL6d6ryCyQaqVRnAAAAAElFTkSuQmCC\";\r\n } else if (/\\.(mov)$/i.test(file.name)) {\r\n image.src = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAG7AAABuwE67OPiAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAYBQTFRF////4uLrUb/q4uXmwcbLUL7o4ubn4uXnUL7oUb7oUb/oUr/oU7/oVMDpVcDpWMHpWsLpW8LpXMLqXcPqX8TqYMTqYsXqY8XrZcbrZsbrZ8braMfracfrasjra8jsbsnsb8bob8nscMrscsrsc8vtdMztdsztd83te87ufs/uf8/ugNDugdDugsjlgtHvg9HvhtLvh9LviNPvidPvitTwjNTwktbxk9fxldfxldjxl9jxmdnypN3zpt7zp97zreH0r+H0r+H1sLe9sOL1seL1tLvAtOP1tbzBtuT1uOX2vOb2vuf2v+f3wNznwOj3wcfMwej3xOn3xen3xer3x+r4yNTcyev4ytHYzez4zu35z9Xbz+350O350+/51O/51tvf1vD61/D62fH62/L63ODj3eDj3vP73/P74PT74fT74uXn5PX75fX86Pf86vf87Pj87fj97vn97/n98Pn98vr98/r98/v99Pv+9vz+9/z++v3++/3+/P7//v7//v//////s83XbgAAAAh0Uk5TABo8psDJ5upYXiAEAAACGElEQVRYw93XWVMTQRiF4cRoeIkhRAU0GhUXcMWIiruiiBFXFlEEhUhU0BFBgxIclvPXvZhoopjpWbjiXM18Xd9T3VM13dWRSG2isbjlku0RQ6INlmv6TELMMgAmIW4EDIJlBtwFL4Cr4AlwE7wBLoJHoL7gFagreAbqCd6BOoIJeGASTMBgn0EwAR/uGwTLKAy6r8LykMJYNYGAWiEYUCMEBKpCUOCPEBj4LQQHKkIIwBHCAFYhLGAVwgJWISxgFcIC1uYB23bgI+1PNwC++qF9A4DPbF1gV6oy3lh5ONxzvaMJYGe6MpJOuAEfv2QAOFgaBeiclqSFi8DI8hEATq/cdQOkYhJIzcgGTq2pPP5yQboJoxoC4K363QHdA/KSDa2LGt4NyVta7eSkVvcCx7V2wACs5zgvyYar+ux8iWd6BNO6AzzRc9yBx/p+4ocGZMND9TrVs5qFnMrNtK6owwBki1rTZLNseKNrTjWrZWBGN7itKQxAJvtTCy0p2dCvvFO9oCJwSXOpknJGgHOvj5KSDT1abAFITGoASMxpSJ8azQDgAKlZvTsGbSMqZwCuSLqMCdhXBThUlkrz67K7AUjO62uTAXg1VZni+DDAnvyStDSyv9J05lu3/58p3Vbzktza+4HPTbUr5Lbe9aLuwTLmLRMhgYn3m3+0bSEg7q8/7vvq+09ivi/ff6ch+p/re8zzKuIxp/8XNAuABhOayosAAAAASUVORK5CYII=\";\r\n } else if (/\\.(mpg?e)$/i.test(file.name)) {\r\n image.src = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAG7AAABuwE67OPiAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAXpQTFRF////4uLr97dN4uXmwcbL97hN4ubn4uXnsLe9tLvAtbzBwcfMytHYz9Xb0dPT1tvf3ODj3eDj4uXn59rD6sWE88Ju97hO97hP97lP97lQ97lR97pS97pT97pU97tV97tW97xX97xY+LxZ+L1a+L1b+L5c+L5e+L9f+L9g+MFk+MFl+MNo+MNp+MNq+MRt+MVt+MVv+cVv+cZw+cdz+cd0+ch1+ch3+cl5+cp8+ct9+ct/+cyA+c2C+c2D+c6F+s+H+s+I+tKO+tOR+tST+tSU+taY+taa+tea+teb+9ec+9id+9qj+9ul+9yn+9+u/OCy/OG0/OG1/OK3/OK4/OO4/OS8/OjG/OjH/OnH/enI/erM/ezO/ezQ/e3S/e3T/e7U/e/W/e/X/e/Y/fDZ/fDa/fHd/vLe/vPi/vXl/vXm/vbp/vfq/vjt/vju/vnv/vnw/vnx/vrz/vv0//v1//v2//z3//35//36//37//78//79//7+///+////70ohzQAAAAh0Uk5TABo8psDJ5upYXiAEAAACB0lEQVRYw93XW1fTQBQF4NZoQAGjI+wCFcGKl2oBUeIFFVBRqQJSr1QF0Uq9UUWxIJT9331IS6qYnEnCU/fTvJxvZWZWzqwTi9UnbpjKJ/tjQuJNyjfNkmAoAZAEUwQEQcmAv6AD+ApagJ+gB/gImoC3oAt4CtqAl6APeAgScEgSJKClWRAk4OhBQVCi0OK/C6URq9VNKKBeCAfUCSEBVwgL7AihgZoQHqgKEQBHiAIoKyqgrKiAsqICyooKqL0D9h1AgHQc2wUEqgc6dgEImAYGziSqi+4uAGnbtoeStZr+a1dTEnCyvHQCAHDz1zRwfZskN2Z7AODyMsntpyl/YJh8DgDnVlkAslwrFlfIxwDubLH08vU6F0SAt4HORTpAHuicZKUX6TJnjwOZ/EMZKGcwTRdA4itHMMd5rUMc5to8i6NbzLlAX5kD+MBbwFg2O3VFBE6XWOGc7QBvbXtskaUurHIQ50lys18CcINc6q4CJMmNUeAdx5G4OzPzjWkRwL0XZ1EFfhQKC7kLAJ7wDQCgqAMAqAH52pll1vkshb4J6Qsu8qezGOF7YKru6O9XWPnym1xO+AI9n3POovfTI2BoZdK9t0uvvnPz44NklJ/pVLKx+0HAptoesa23H/Z8WFr10hYRaDuy909bAwFmsHoz8Oj7T4zAw/ffaYr/Z3w3tHdhGk79H3uILUNW588iAAAAAElFTkSuQmCC\";\r\n } else if (/\\.(wmv)$/i.test(file.name)) {\r\n image.src = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAG7AAABuwE67OPiAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAZtQTFRF////4uLrhLtZ4uXmwcbLhL1a4ubn4uXnhL1ahL1bhb5bhb5chr5dh79fiL9fiL9gicBgicBhi8FjjMFkjcJmjsJoj8Noj8NpkMNqkcRrksRsksVtlcZxlsdyl8dzl8d0mMV4mMh1msl4m8l4m8l5nMp6nst9n8t+oMyAoc2Bos2Cos2Do8iMo86Epc+Hp9CJqNCKqtGNq9KOrdORrdOSrtSSrtSTsLe9sNWVsdWXstaXs9aZtLvAtbzBtdebttidt9ifudmhutqiu9ukvNulvdymvdynvtyowcfMwd6swt6tw9+vx+G0yOG1yeK3ytHYytTUy+O6zNzGzOS6zeS8zuW+z9Xb0ebB0ufD0+fD0+fE1ejG1ejH1tvf1unJ1+rK2OrL2evM2evN2+zP3ODj3eDj3e3R3e3S3+7U4O7V4uXn4/DZ5fHc5vLd6PPg6fPh7PXm7fXm7fXn7vbo8Pfq8ffs8fjt8vju8/nv9frx9fry9vrz9/v1+fz3+vz4+vz5+/35+/36/P36/P37/f78/v79/v7+///+////M5zI1AAAAAh0Uk5TABo8psDJ5upYXiAEAAACSklEQVRYw93XWVcTMQCG4WK1vC0FpaK4AioIKipWAQUXxKWICm4g2lbABXFwARGpWwWh8P1sL6YIijOZdrjiu8mcZPKck5wsJ4HA2pQEQ5ZLtgYMKSm1XNNuEoKWATAJISNgECwz4C54AVwFT4Cb4A1wETwCzoJXwFHwDDgJ3gEHwQRcMgkmoKfdIJiAVxcNgmUUetxHYXlIun81RQFrheKANUKRwKpQLPBHKBpYEYoH8oIPwBb8AFbaL2Cl/QJW2i9gpf0C1sYBW7ZRQOoerAMK6g916wAKzGYFtttt5XaxA8K7V/6vgLJY/jsWcQB6F48CxL82AbSqjRu/LgAQHv62h2S2AYATC30OQJ+eAOGPeg3wTh2kNH8YICHFGdEzAMblBDQqWwkt0nIt1GguRkqarISmRSnOceX2A/VaOuA0B9M6D2PK6T7cVhJSkoaompEUhwndAYY07DiJvRqjdnm+Wz9i4U86DSklF9Q5qslxxaFF3yupXlCjI3BQueqHehydVfcxZcogpcR1LSl7aFRx4L26uKUJl3XwVr1ZNZDQ9IDuAiklwm+kNmzgrKbKM4q7AFeV0wRU/VROR2yAvc+7yAORKT3VVMQF2LUotQKPpA/kAWAFoFPSFdel/EKzUaBmWdcAkrpp14/oDEB0Rl8qXIGTc50ADGR2AnTM1tv1lz/vA+BU5pxhM0XzZcRhD0U383lQ4KHa7PNYb77neLH0e8ugT2Dw5cZfbZsICBXWP1Tw0/efBAt+fP+d0pL/PN+DnkcRCtr9fwPdc4XV7qNYhAAAAABJRU5ErkJggg==\";\r\n } else if (/\\.(3gp)$/i.test(file.name)) {\r\n image.src = \"data:image/png;base64,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\";\r\n } else if (/\\.(mp4)$/i.test(file.name)) {\r\n image.src = \"data:image/png;base64,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\";\r\n } else if (/\\.(pdf)$/i.test(file.name)) {\r\n image.src = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAG7AAABuwE67OPiAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAASlQTFRF////4uLr8lVE4uXmwcbL8VZC4ubn4uXnsLe9tLvAtbzBwcfMytHYz9Xb0c7S1tvf3ODj3eDj4uXn5oh95sPA7nRl8VZC8VdD8VlF8VpG8VtH8l1J8l1K8l9M8mBN8mFO8mFP8mJP8mNQ8mVT8mZU8mdV82xa83Fg9HZm9Hdn9Hts9H5u9IBx9YJ09YR19YV39YZ39Yh69Yt99Yx+9pWI956T96CU96CV+Kec+K2j+K6l+K+l+LCn+bGo+biw+buz+r62+sK7+sO8+sW/+sa/+8/J+8/K+9HM/NbR/NfS/NnU/NrV/NvW/N7a/N/b/ODc/eTh/ebj/ebk/ejl/ejm/ero/ezq/vTy/vX0/vb1/vf2/vj4//r5//r6//v7//z8//39//7+/////YM9wgAAAAh0Uk5TABo8psDJ5upYXiAEAAABv0lEQVRYw+XX2VLCMBQGYLBaUEA0aBC3qqBIVcR9wX1XEBRBUfbz/g9h6AIotklarvC/6KSZyTfJmTSdOBydcQoiMsmggxKnC5nGTRMERAFogkgFKAKiA+YCC2AqMAFmAhtgIjACxgIrYCgwA0YCO2Ag0IARmkADPG6KQAPGhykCogoe81Ughvi97VgCOgVrQIdgEWgLVoGWYBnQBeuAJtgAVMEOoAi2gKZgDyCCTQD57QKod8DAEObI5EQXwDWeCF0A5kxfA2FZlmMzSnNakqSQ1h2cJy/SLB1YqQJJ43IJ40SZtGrZs0XSPfUCSv8xFUhAOZvNA9xhfAJfhcIHwPsqxhFlPFT2GYAseW7UIUaAc9KMpiATJECFsQYqgO9hVwNwpAE7/MArbOsAfoAkAWoHJGssQE6W4zdQWW4BSbjSa1APMwBqufdwC3iGIwI0rkkOWWZQSqcfL5pz1YAowBZ/DbAOhNZzkMIcwCZk2kC1WCT76i3KAyzkk3oz/kmKUXo6nWvu5PTtP/qcrQKch2rA5rEeGDX8sXjZ4rMJ+MZ6/2vrI0DkGy9yX31/ReC+fP+My/nH9V1gXoUoqOO/ATvkEwaxqvgyAAAAAElFTkSuQmCC\";\r\n } else if (/\\.(xls)$/i.test(file.name) || /\\.(xlsx)$/i.test(file.name)) {\r\n image.src = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAG7AAABuwE67OPiAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAWJQTFRF////4uLrhLtZ4uXmwcbLhL1a4ubn4uXnhL1ahL1bhb5bhr5dh79eh79fiL9fiL9gicBgi8FjjMFljcJmjsJoj8Noj8NpkMNqkcRrksVtk8VvlMZvlcZxlsdyl8d0mMV4mch2msl4nMp6nst9oMyAoc2Bo8iMo86Epc+Gps+Ip9CJqtGMq9KOr9SUsLe9sNWVsdWWs9aZtLvAtbzBtdebttidt9ifuNmfutqiu9qjvNumwN2qwN2rwcfMxuCyyOG1yeK3ytHYytTUzNzGzeS8zuW9zuW+z9Xb0ObA0ebB0ebC0+fD1tvf1unH1unI2OrL2evN2+zP3ODj3eDj3u3S3u3T4O7V4uXn4u/Y5PDa5PHb5fHc5fHd5vLe5/Lf6PPh6fPi7vbo7/bp7/bq8Pfq8ffs8vju8/nv9Pnw9Pnx9frx9fry9/v1+Pv1+fz3+vz5+/35/P36/P37/f78///+////UwWFaAAAAAh0Uk5TABo8psDJ5upYXiAEAAAB00lEQVRYw93X90/CQBQHcLBanrhn3RsHiooK7j1Q3LPiXrhBEd//b4GqRW3vtedPfJP2JZfcJ3m53F3OZtPGLoiyQbJtjNgdsmF6WYIgMwCWIDIBhiCzAWOBAhgKJMBIoAEGAhHQF6iArkAG9AQ6oCOwgEGWwAImexkCC9gdYAgyU5g07kImZG32O5YArWAN0AgWgW/BKvAlWAY+BeuAKnAAKYEHSApcQELgAxSBE5DXeAH5/4CsHDCRxvlfgKn5ivALAJPJbKA4VfLUT41rdMxTQAL8cW+ieF580BAdVgcrQqjkwU0BPPjWBtDyil7owaA6OIMnQxMHsWlSC0G8qyq7wXXQAFGsU/6FThJQcIRH+3herAXCOJ5HXwXpFvGpBrSA7x2fVzvJy7iCuAlpADRvvSNeuGlAH8ZiOJIOAFR6Q/haSwGaX9DvxXjHDwAg9wz7CUDpFW4ALOJjtQKsS5JU6QTnwlgTQHkEuwnAEl6WKEtxjNsKkMx1UXkcMbwXwXAJAZgKtyRK9eky1NwngdN86DpU6ttyHcdmqm91SZl+Hpg8VNs5j/X2Od2LZZaWACcQ2Pn/qy2DANHcfNH00/dHBNOP7/Q47H883wVyF6KQmv8Bq6jVN1IOSxsAAAAASUVORK5CYII=\";\r\n } else if (/\\.(doc)$/i.test(file.name) || /\\.(docx)$/i.test(file.name)) {\r\n image.src = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAG7AAABuwE67OPiAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAYlQTFRF////4uLrUb/q4uXmwcbLUL7o4ubn4uXnUL7oUb7oUb/oUr/oU7/oVMDpVcDpVsDpV8HpWMHpWcHpWsLpW8LpXMLqXMPqYMTqYcTqYsXqY8XqY8XrZcbrZsbracfra8jsbMjsbcnsbsnsb8bob8nsdszteM3tes7ue87ufc/ufs/ugsjlgtHvg9HvhNHvhdLvh9LvidPvjNTwjdXwkNbwkdbxmdnymtrym9ryndvyoNzzpN3zqN/0qd/0qt/0rOD0reH0r+H0sLe9seL1suL1tLvAtOP1tbzBteP1tuT1t+T2uOX2uuX2v+f3wNznwOj3wcfMwej3xer3x+r4yNTcyev4ytHYyuv4z9Xb0O750u750+/51O/51tvf1vD61/D62PD62fH62/L63ODj3PL63eDj3fL63vP73/P74PT74uXn4vT74/X75vb85/b86Pb86Pf86vf87fj97/n98fr98vr98/r99Pv+9fv+9/z++Pz++f3++v3++/3+/P7//f7//v7//v//////EqXJvQAAAAh0Uk5TABo8psDJ5upYXiAEAAACD0lEQVRYw93X2VfTQBgF8NZouGhbFYp1BSuiIou4gCiKFtxXQEXURkVRcRQ14NLYNpr7l/uQSouYzEzCU+/bTOb7nTNzTmbOl0g0JmmYIiSbE5IkW0RoJmSCISSATDClgEQQciBcUAFCBSUgTFADQgRFIFhQBQIFZSBIUAcCBBlwXSbIgKkJiSAD3lyVCEIqTIXvQijEmq0nEtAoRAMahIhAXYgKrAqRgb9CdKAmxAB8IQ4grLiAsOICwooLCCsuIDYO2LQFGum+tw7Qqge61wHQTBMDmWw2m64v2zc40tu2Ojow0NMmAQYrJN3Fmx1++V2PpHM+BQA4/ZVkZSwdClymY9s/SPswgNwKq8WZD+QjALhIfnv6zuMVCXAbQH6er1qBZ1zsAnCyzLNAl+ueawV6i8MKAHZ7HEIny50AgBF+BG7wlsoh1gC85CWc4nN/ssP7vRNF9ugAk5zGGKdri78zj8/cqwO85zhOcMGf3MNqGk94XAPIkwPI8ddRAECBC0CBD5SB9LElzgO4w5UhYMe45/UDOYfX2rF1ePm+BKiWSi756SCA7W/J0pJL7wIAnKnQ++KQM6FAv0Py54tCOwAgNWp7LBeP+N8OPV6mZ4+m9H6mzP5tDaNdmaa+DzQv1b6Y13rfw8CHZVYtczGBudcb/7Q1EWDq1Zvare8/MbSb77VpSf6nfTeUd2Eafv0fK2N/P/dH6bUAAAAASUVORK5CYII=\";\r\n } else if (/\\.(rar)$/i.test(file.name)) {\r\n image.src = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAABYgAAAWIBXyfQUwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAeSSURBVHic7Zt7cFTVHcc/5+4jm2zem4QSQkVUYKyFYosxtdpYqoK17YiSdkp4VK3alk5H+gfO0FZB6tAZnTA8WhlB8uIRIOqUKhiQamuViJHa0k4bAuERW2HzIMldyGbv3tM/bhJ22d1ks8/Q+pnZ2b33/M7v9zvfe+455z5WSCmJim3riyjMe54bp5RF5ygmSITYDzxJwc1/DaeCOapwdRunYJYHcPedjspP7BBIORchAO4Np4IScai6tTeD9x3gsxH7iBdS3hOuaWQC7FxbCsofgPyI6sefsNs1egHq1n0boewDMkdddwwyOgF2rl8C1AO2eCSTDMIXoG7dMoR8CTDFL53EE54Au9b/CngeEHHNJgkMPw2uXKkwLfs3IB5LUD4JJ7QAu1damZZbC3J+AvNJOMEFqHnOTkrOKyDvSnA+CSdQgN0VuVitryMpDttLVnYsc0oo/gLsrpiAbn4D5OfC92A+xqSiL8Y6sUThL8CMLzyLR9OAj8KqbUuxk26/KQ55JQx/AbKyrgE5I0m5JIXIL4b+R/hUgGQnkGw+FSDZCSSb6G6JARKhSSG8sUgmlvzxikt2J3jmQ0CeEQugCZN6NGfqUdWU+iUJqZH6iRs6l3w3HdB7CKoUhSdKQRvcH/Ep0Gqf0NRrSr19TDY+OBnAUullnu/OiAU4b822R51SEpCCOb7bEQsgxdV5c0Rc0eaoB8Ehx14vBet/i/X0maDlekoKl6bfRFfZA0hz6LDWs23kbq+j/ZHvozlyg9qkNR0ld+duhKYFFgpBf+F4uu+bS9+0qSPmHTMB7O81Mu65tSPa5e7YxYn6HUirNWh50c+eJP3dw1jPtnFmQ0VQm/Gr12A/0jRsnIINL3Bm41q6vzFnWLuYCaCoLgB0m42uB+8PKDf19JC1r4G0ox+RV1mL89GHAmxszS2kv3sYgKzX9mN+agVafl6gL9dFANSSYtzXTQ4oT298n5TjJyha/nN67rkLaQ59HzdmAgyiZ6Tz8ZpngpYV/mIVeVurSfvgQwgigKO6dui38HjI3V7H+Z/+OGSsrvnz6Cp7IGC/2enkxpklmC5cIOXECfqmTgnpI6ErQe0zBUZQlyswEdVFzp5XAIbOXUftDoR39GssLf/yAytloLeEIjlLYRE4geTUv4qiuvBmpHNq6yak1YrlP5+Q2XAw5rF8SZgApp4eMg69DYCncHxAuaPK6P5dD86jf2IRF75pPNx1VNYG2I5E9t7Xh34Hi+VLzMYAU69qOHS2M73o+tCGQnDh/m/57bIffh9b83EAOhYvML6XLCSn/lXS//weKS0ncF9/3eWkne0ATFy2nInLlocMpZYU4xlXMGzeMesBwt03oo2ebqft16tRS/xvOOdV1gCg3lYy1NCLM2dw6fPGvVlH1Tb/WJ7+EWOpd3yFsyGmUV9iJoCWZ0xX3uxs2tasRrcZF2P9E4tord5Mc8Ne/n6sic7vfcevnuXceTL3NwDQsaTcr6xjsbGds+dlv8FssFs7lz6O65ZZxk4hcP7wB7Tsrecff2nk5PbKEY8+xGEMkBYzneXfpXXbVvS0VKxn2xi/eg1aQUHQFWD+xk0IzYuekkLOrpeZ9PDjQ5/M/QeQFgumXpW8ymqfWsbA1jf5Wk7WVdNz92yQkvwXNpP6t2NoeY6w843bIOgqnkVrzUvoaanYmluYXFaOub3Dz0ZoGjl1e4xE3G4yD7xJ5hsHL38OHkJ4PAA4ttYEjSMtFk5v2jAkwoQVT+Oo3hbUNhgxXwj54iqeRWv1Fq5d9DC25uNMLivn5O5tQ2v8rH0NmFwupKLQsXgBMjUtwIfS3Y1jex2WT85hbzyCq3hWgM2gCNc8tpTMhjeZsOJpADoWLRgxx7gKAOC69RZOVW1m0qJHLouwqxbNkYtjYPDrvm8u/37mqZA+rG0fk/H2n3BU1gQVACIXIXangMXQMth5rpYUc6rqRfTUVGz/amZcxTpMXRewNx4xklxcHlDHl44lCwGjx/jGkBb/WFeeDoW/XIW5s2tY3zHrAeqXb6X73jmot5WELG+t2cK4ivX0fK0UPSODrvnz0By5IY/qID2zSzn3xE8wd3YC4Hz0IbJ/93vUO24PsB0UoXDVs5jaO9Cys4b1LfxelDz34VsgvzpsjQHecUxv6lcsV91DUQFVdyosGdz+v78tHrEAWdrF3lgmkigk+N1JiViAG9SzUxWpt0SfUuKQkg/cClW++yIeBG1e9/jS9qN0W9L/2a+Y3NGnFx4CIRS3OkWgD/uuYpNj5p1+9cx0zoaAF6ijngWyPOq0aH2MCu0ieD0jmn3dzFvhuLu6BkGtL6zGj4arRwCv2/jEmKtDAK/bOPpxYOwL4O2PW+NhrAvg7Qft0sh2URD3q8GI0S4ZAsSZMSiABM9F0IM894sDY0sAqYPHZXwniLEjgO4xun20f+MbJckXQEqj4XpsFzjhklwBknTUfUmOAFIfOOqJGeiGI7ECSH1gSRv/6S1cEiPAGGz4IFcIIGP7wuMYbvgg/kthwWvRu5RGgz0q9Pcmp/GK2RmuqX8PsLAFNzcgWAiM7j1A3WNcqydpOhtCMTsR4kfhmv8XLCqPPTDPrcIAAAAASUVORK5CYII=\";\r\n } else if (/\\.(zip)$/i.test(file.name)) {\r\n image.src = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAG7AAABuwE67OPiAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAQVQTFRF////4uLrhLtZ4uXmwcbLhL1a4ubn4uXnhL1ahb5chr5dh79eiL9fiL9gicBhi8Fji8FkjMFlj8NpksVtk8Vuk8VvlcZxlsdyl8dzl8d0mMV4mMh1m8l5nst9n8t+oMyAos2Co8iMpM6Fpc+GqdGLqtGMq9KOr9SUsLe9sNWWstaXtLvAtNebtbzBuNmgvtyov92pwcfMwt6txuCzyOG1yeK3ytHYytTUzNzGz9Xbz+W+0ObA0ebB0ebC1ejH1tvf1+rJ3ODj3eDj3u3S4uXn4/DZ5PHb5/Lf6PPh6fPh6vTj8/nv9frx9fry9vrz+Pv1+Pv2+fz3+vz4+vz5/f78/v7+////zx0KrQAAAAh0Uk5TABo8psDJ5upYXiAEAAABkElEQVRYw+XX2VbCMBCAYbBaBqXuCm5V3EBcQUFxwyViBRFBnPd/FEsrUsQ2k4Qr/K/ai3ynyUnbk1DIW1jTWUCjIU7hCAsszRM0xgF4gs4FOALjA8ECBQgUSECQQAMCBCLgL1ABX4EM+Al0wEfgAYc8gQdk0xyBBzzscwTGFbLBs2CESoVuUoBXkAM8giTQFWSBH0Ea6AjywLegALiCCuAISkBbUANsQRFgJVWADQ4YGQOBli/6AKHxttAHgGDDDsyuOk3blxPt+4RpmitROhBvodNrHLZbRwAZ565xEqUCU3dluzdsGpDDG4A81iyrhngstAaJBh5AB8jbc8nhuwhgvOA1eAEwGjgvAFyiZfQCC584Qwf2sL4IXeDWNFPPWKFPYamJu+ABnD7WyIBRwVPwAtVy+fFsjr6RrvBpMhaLjfesgcBO3HAfGVsZSWC96gLNFGzVMwCb1Z3/9zpLAYIf1aTiZz157vtjKdAqKgLF+8H/2oYI0MXG68JH319pwofv3iLhP47vGnkWuuaO/wIIfD53scyOrgAAAABJRU5ErkJggg==\";\r\n } else {\r\n image.src = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAA9GAAAPRgFoUyCCAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAHhQTFRF////29u94t/L7era3drF0s60zsmu0s2z0s201M+21M+31NC31dC41dG419O72NO82dS92dW+2tW+29fA29fB3NjC39zH4NzH4d3I4d7K4t7K4t/L49/L5OHO5eLP5uPQ5+PR5+TS6OTS6ufW6+fX7OnZ7enZ7erapLTDdAAAAAZ0Uk5TACPK0OP2XTOeEQAAANZJREFUWMPt0lsLgkAQhmHNDmYeKls10zJP/f9/2EWgRTvjtwRCMO/18sDsjGW9ch5TLW2Laxo4ruwfgTUrIAArQAAnYAAjgAAtoAApwAAl4AAhGAB6wQTQCkaATjADNMIIlIf9kOoI4FsYgd37u+sIlMlHCxKo1Gko6cmJHOM/EGBOIPO2ZF4GAP6ayQeAJj+T5Y2s8U8Axd2BAoCQA0IA6KsbWdXLGmcC6jtZjQARdwcRAMQcECMjdExyBzMBbXEhK1oACLg7CAAgdTdkbiprFEAAAngCbfyPhN98/+IAAAAASUVORK5CYII=\"\r\n }\r\n\r\n \r\n $compile(image)($scope);//esse cara aqui que faz o ng-click injetado no dom funcionar\r\n $preview.appendChild(image);\r\n\r\n $scope.fileList.push({\r\n name: file.name,\r\n value: this.result\r\n });\r\n\r\n $scope.$emit(\"addFile\", {\r\n \r\n value: this.result\r\n });\r\n\r\n document.querySelector('#clear-attachments').style.display = 'block';\r\n angular.element(elementHTML).val(null);\r\n\r\n });\r\n reader.readAsDataURL(file);\r\n\r\n };\r\n if (files) {\r\n [].forEach.call(files, readAndPreview);\r\n }\r\n angular.element(document.querySelector('input[type=file]')).val(null);\r\n\r\n }\r\n \r\n });\r\n };\r\n\r\n $scope.addProduct = function (evt, frmProduct) {\r\n evt.preventDefault();\r\n $scope.product.key = new Date().getTime();\r\n $scope.productList.push($scope.product);\r\n $scope.product = {};\r\n };\r\n\r\n $scope.delProduct = function (evt, key) {\r\n evt.preventDefault();\r\n $scope.productList = $scope.productList.filter(function (product) {\r\n return product.key != key;\r\n });\r\n };\r\n\r\n $scope.clearAttachments = function (evt) {\r\n if (evt) evt.preventDefault();\r\n $scope.fileList = [];\r\n $scope.totalSizeFiles = 0;\r\n document.querySelector('#preview').innerHTML = '';\r\n document.querySelector('#clear-attachments').style.display = 'none';\r\n };\r\n\r\n\r\n $scope.changeTemplate = function () {\r\n if ($scope.fileList.length > 0) $scope.clearAttachments();\r\n $scope.productList = [];\r\n };\r\n\r\n $scope.queryVendor = function (query) { return filterFilter($scope.vendorList, { name: query }) };\r\n \r\n $scope.selectVendor = function (vendor) {\r\n if (_.isEmpty(vendor)) {\r\n delete $scope.rma.codVendor;\r\n delete $scope.rma.vendorName;\r\n } else {\r\n $scope.rma.codVendor = vendor.key;\r\n $scope.rma.vendorName = vendor.name;\r\n }\r\n }\r\n\r\n function fnInit () {\r\n $rootScope.loading = true;\r\n var user = $auth.getCurrentUser();\r\n if (!_.isEmpty(user)) {\r\n $scope.rma.businessName = user.Enterprise;\r\n $scope.rma.name = user.Name;\r\n $scope.rma.telephone = String(user.Telephone).replace(/[^\\d]/gi, '');\r\n $scope.rma.email = user.Email;\r\n }\r\n ProposalAPI.ListVendors(afterListVendors, $helper.throwException);\r\n }\r\n\r\n function afterListVendors (response) {\r\n if (_.isEmpty(response)) {\r\n AlertFactory.showPopup('The Vendors List is Empty.');\r\n } else {\r\n $scope.vendorList = response.map(function (vendor) {\r\n return { key: vendor.codVendorFator, name: vendor.name };\r\n });\r\n }\r\n $rootScope.loading = false;\r\n }\r\n\r\n function fnAfterSendRma (response) {\r\n $rootScope.loading = false;\r\n SweetAlertFactory.showTranslationWithFinally(\r\n 'rma.EmailSuccess',\r\n fnRedirectRoot\r\n );\r\n }\r\n\r\n function fnRedirectRoot () {\r\n window.location = \"/#!\";\r\n }\r\n\r\n fnInit();\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .service('$codErp', function () {\r\n \r\n this.Brasil = 1;\r\n this.Cala = 2;\r\n this.Mexico = 3;\r\n this.Colombia = 4;\r\n this.Peru = 5;\r\n this.Equador = 6;\r\n this.Argentina = 7;\r\n this.Chile = 8;\r\n\r\n return this;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .service('$codPais', function () {\r\n \r\n this.Paraguai = 5860;\r\n this.Uruguai = 8451;\r\n this.Bolivia = 973;\r\n \r\n return this;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .service('$codSalesOrderAddress', function () {\r\n \r\n this.Undefined = 1;\r\n this.Invoice = 2;\r\n this.ShipTo = 3;\r\n this.BillTo = 4;\r\n this.EndUser = 5;\r\n this.ComissionedCompany = 6;\r\n\r\n return this;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.auth')\r\n .factory('$modalAuthFactory', function ($mdDialog) {\r\n\r\n var vm = this;\r\n\r\n vm.noticeLogin = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'NoticeLoginModalCtrl',\r\n templateUrl: 'app/pages/auth/modals/partials/notice-login.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n return vm;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.auth')\r\n .controller('MultiCountryModalCtrl', MultiCountryModalCtrl)\r\n .factory('MultiCountryModal', MultiCountryModal);\r\n\r\n /** @ngInject */\r\n function MultiCountryModalCtrl ($scope, $mdDialog, locals) {\r\n\r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.list = locals.list;\r\n\r\n $scope.onLogin = function (evt, customerID) {\r\n $mdDialog.hide(customerID);\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function MultiCountryModal ($mdDialog) {\r\n\r\n return {\r\n show: function (evt, list, callback) {\r\n $mdDialog.show({\r\n controller: MultiCountryModalCtrl,\r\n templateUrl: 'app/pages/auth/factories/partials/modal/multi-country.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: {\r\n list: list\r\n }\r\n })\r\n .then(\r\n callback, \r\n function () { \r\n console.info('modal dismiss') \r\n }\r\n );\r\n }\r\n }\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.auth')\r\n .controller('NoticeLoginModalCtrl', NoticeLoginModalCtrl);\r\n\r\n /** @ngInject */\r\n function NoticeLoginModalCtrl (\r\n $scope, \r\n $session, \r\n $mdDialog\r\n ) {\r\n var baseBanners = 'assets/img/banners/';\r\n var locale = $session.get('locale');\r\n var imageSrc = baseBanners + locale +'/popup-login.jpg';\r\n\r\n $scope.keyTitle = 'Comunicado';\r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.image = imageSrc;\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.company-registry')\r\n .directive('cadastroEmpresaAdditionalInfo', cadastroEmpresaAdditionalInfo)\r\n .directive('cadastroEmpresaCnpj', cadastroEmpresaCnpj)\r\n .directive('cadastroEmpresaComissionamento', cadastroEmpresaComissionamento)\r\n .directive('cadastroEmpresaCondicaoPagamento', cadastroEmpresaCondicaoPagamento)\r\n .directive('cadastroEmpresaCondicaoPagamentoArquivo', cadastroEmpresaCondicaoPagamentoArquivo)\r\n .directive('cadastroEmpresaCondicaoPagamentoCala', cadastroEmpresaCondicaoPagamentoCala)\r\n .directive('cadastroEmpresaCondicaoPagamentoArgentina', cadastroEmpresaCondicaoPagamentoArgentina)\r\n .directive('cadastroEmpresaCondicaoPagamentoChile', cadastroEmpresaCondicaoPagamentoChile)\r\n .directive('cadastroEmpresaContaBancaria', cadastroEmpresaContaBancaria)\r\n .directive('cadastroEmpresaContatos', cadastroEmpresaContatos)\r\n .directive('cadastroEmpresaContatosCompras', cadastroEmpresaContatosCompras)\r\n .directive('cadastroEmpresaContatosContas', cadastroEmpresaContatosContas)\r\n .directive('cadastroEmpresaContatosLogistica', cadastroEmpresaContatosLogistica)\r\n .directive('cadastroEmpresaContatosPrincipal', cadastroEmpresaContatosPrincipal)\r\n .directive('cadastroEmpresaContatosNfe', cadastroEmpresaContatosNfe)\r\n .directive('cadastroEmpresaContribuinteIcms', cadastroEmpresaContribuinteIcms)\r\n .directive('cadastroEmpresaCuit', cadastroEmpresaCuit)\r\n .directive('cadastroEmpresaDnb', cadastroEmpresaDnb)\r\n .directive('cadastroEmpresaEnderecoBairro', cadastroEmpresaEnderecoBairro)\r\n .directive('cadastroEmpresaEnderecoCep', cadastroEmpresaEnderecoCep)\r\n .directive('cadastroEmpresaEnderecoCidade', cadastroEmpresaEnderecoCidade)\r\n .directive('cadastroEmpresaEnderecoComplemento', cadastroEmpresaEnderecoComplemento)\r\n .directive('cadastroEmpresaEnderecoCompleto', cadastroEmpresaEnderecoCompleto)\r\n .directive('cadastroEmpresaEnderecoEstado', cadastroEmpresaEnderecoEstado)\r\n .directive('cadastroEmpresaEnderecoLogradouro', cadastroEmpresaEnderecoLogradouro)\r\n .directive('cadastroEmpresaEnderecoNumero', cadastroEmpresaEnderecoNumero)\r\n .directive('cadastroEmpresaEnderecoPais', cadastroEmpresaEnderecoPais)\r\n .directive('cadastroEmpresaEnderecoPaisFixo', cadastroEmpresaEnderecoPaisFixo)\r\n .directive('cadastroEmpresaEnderecoSuframa', cadastroEmpresaEnderecoSuframa)\r\n .directive('cadastroEmpresaInscricaoEstadual', cadastroEmpresaInscricaoEstadual)\r\n .directive('cadastroEmpresaInscricaoMunicipal', cadastroEmpresaInscricaoMunicipal)\r\n .directive('cadastroEmpresaIntranetType', cadastroEmpresaIntranetType)\r\n .directive('cadastroEmpresaLineInterest', cadastroEmpresaLineInterest)\r\n .directive('cadastroEmpresaLinhaInteresse', cadastroEmpresaLinhaInteresse)\r\n .directive('cadastroEmpresaNomeFantasia', cadastroEmpresaNomeFantasia)\r\n .directive('cadastroEmpresaPossuiCnpjCadastrado', cadastroEmpresaPossuiCnpjCadastrado)\r\n .directive('cadastroEmpresaPrazoNfe', cadastroEmpresaPrazoNfe)\r\n .directive('cadastroEmpresaRazaoSocial', cadastroEmpresaRazaoSocial)\r\n .directive('cadastroEmpresaRfc', cadastroEmpresaRfc)\r\n .directive('cadastroEmpresaSalesTaxExempt', cadastroEmpresaSalesTaxExempt)\r\n .directive('cadastroEmpresaSegmentoEmpresa', cadastroEmpresaSegmentoEmpresa)\r\n .directive('cadastroEmpresaSetor', cadastroEmpresaSetor)\r\n .directive('cadastroEmpresaSimplesNacional', cadastroEmpresaSimplesNacional)\r\n .directive('cadastroEmpresaSuportaRetencao', cadastroEmpresaSuportaRetencao)\r\n .directive('cadastroEmpresaTaxId', cadastroEmpresaTaxId)\r\n .directive('cadastroEmpresaTipoCliente', cadastroEmpresaTipoCliente)\r\n .directive('cadastroEmpresaTipoEmpresa', cadastroEmpresaTipoEmpresa)\r\n .directive('cadastroEmpresaTiposPessoasChile', cadastroEmpresaTiposPessoasChile)\r\n .directive('cadastroEmpresaTiposPessoasColombia', cadastroEmpresaTiposPessoasColombia)\r\n .directive('cadastroEmpresaTiposPessoasPeru', cadastroEmpresaTiposPessoasPeru)\r\n .directive('cadastroEmpresaTiposPessoasEquador', cadastroEmpresaTiposPessoasEquador)\r\n .directive('cadastroEmpresaUploadAtaAutoridades', cadastroEmpresaUploadAtaAutoridades)\r\n .directive('cadastroEmpresaUploadBankStatements', cadastroEmpresaUploadBankStatements)\r\n .directive('cadastroEmpresaUploadBankingCommercialsReferences', cadastroEmpresaUploadBankingCommercialsReferences)\r\n .directive('cadastroEmpresaUploadChamberOfCommerceAndCertificate', cadastroEmpresaUploadChamberOfCommerceAndCertificate)\r\n .directive('cadastroEmpresaUploadCertificadoConstituicao', cadastroEmpresaUploadCertificadoConstituicao)\r\n .directive('cadastroEmpresaUploadCommercialReferences', cadastroEmpresaUploadCommercialReferences)\r\n .directive('cadastroEmpresaUploadCommercialReferencesTwoFiles', cadastroEmpresaUploadCommercialReferencesTwoFiles)\r\n .directive('cadastroEmpresaUploadContratoSocial', cadastroEmpresaUploadContratoSocial)\r\n .directive('cadastroEmpresaUploadDni', cadastroEmpresaUploadDni)\r\n .directive('cadastroEmpresaUploadDeclaracaoImposto', cadastroEmpresaUploadDeclaracaoImposto)\r\n .directive('cadastroEmpresaUploadSri', cadastroEmpresaUploadSri)\r\n .directive('cadastroEmpresaUploadFinancialStatements', cadastroEmpresaUploadFinancialStatements)\r\n .directive('cadastroEmpresaUploadFinancialStatementsCurrentYear', cadastroEmpresaUploadFinancialStatementsCurrentYear)\r\n .directive('cadastroEmpresaUploadFinancialStatementsLastYear', cadastroEmpresaUploadFinancialStatementsLastYear)\r\n .directive('cadastroEmpresaUploadIgv', cadastroEmpresaUploadIgv)\r\n .directive('cadastroEmpresaUploadInscricaoImpostos', cadastroEmpresaUploadInscricaoImpostos)\r\n .directive('cadastroEmpresaUploadLegalRepresentativeId', cadastroEmpresaUploadLegalRepresentativeId)\r\n .directive('cadastroEmpresaUploadLicencaFuncionamento', cadastroEmpresaUploadLicencaFuncionamento)\r\n .directive('cadastroEmpresaUploadOtherFiles', cadastroEmpresaUploadOtherFiles)\r\n .directive('cadastroEmpresaUploadSingleDocument', cadastroEmpresaUploadSingleDocument)\r\n .directive('cadastroEmpresaUploadSingleTaxRegistration', cadastroEmpresaUploadSingleTaxRegistration)\r\n .directive('cadastroEmpresaVendedorWestcon', cadastroEmpresaVendedorWestcon)\r\n .directive('cadastroEmpresaWebSite', cadastroEmpresaWebSite)\r\n .directive('cadastroAcionista', cadastroAcionista)\r\n .directive('cadastroNameRepresentant', cadastroNameRepresentant)\r\n .directive('cadastroEmailRepresentant', cadastroEmailRepresentant)\r\n .directive('cadastroQuantidadeSolicitadaUsd', cadastroQuantidadeSolicitadaUsd)\r\n .directive('cadastroEmpresaLineInterestColEq', cadastroEmpresaLineInterestColEq)\r\n .directive('cadastroEmpresaUploadEscriturasEmpresa', cadastroEmpresaUploadEscriturasEmpresa)\r\n .directive('cadastroEmpresaUploadEstadosFinanceirosAno', cadastroEmpresaUploadEstadosFinanceirosAno)\r\n .directive('cadastroEmpresaUploadIdentificacaoFiscal', cadastroEmpresaUploadIdentificacaoFiscal)\r\n .directive('cadastroEmpresaUploadCopiaIdRepresentante', cadastroEmpresaUploadCopiaIdRepresentante)\r\n .directive('cadastroEmpresaUploadCertificadoResidente', cadastroEmpresaUploadCertificadoResidente)\r\n .directive('cadastroEmpresaContatosColEq', cadastroEmpresaContatosColEq)\r\n .directive('cadastroEmpresaUploadCertificateShareholder', cadastroEmpresaUploadCertificateShareholder);\r\n\r\n var FIELDS_PATH = 'app/pages/company-registry/components/partials/fields/';\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaAdditionalInfo () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"additional-info/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaCnpj () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"cnpj/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaComissionamento () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"comissionamento/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaCondicaoPagamento () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"condicao-pagamento/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaCondicaoPagamentoArquivo() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"condicao-pagamento-arquivo/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaCondicaoPagamentoCala () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"condicao-pagamento-cala/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaCondicaoPagamentoArgentina () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"condicao-pagamento-argentina/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaCondicaoPagamentoChile () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"condicao-pagamento-chile/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaContaBancaria () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"conta-bancaria/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaContatosColEq () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"contatos-col-eq/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaContatos () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"contatos/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaContatosCompras () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"contatos/compras/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaContatosContas () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"contatos/contas/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaContatosLogistica () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"contatos/logistica/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaContatosPrincipal () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"contatos/principal/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaContatosNfe () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"contatos/nfe/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaContribuinteIcms () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"contribuinte-icms/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaCuit () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"cuit/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaDnb() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"dnb/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaEnderecoBairro () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"endereco/bairro/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaEnderecoCidade () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"endereco/cidade/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaEnderecoCep () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"endereco/cep/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaEnderecoComplemento () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"endereco/complemento/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaEnderecoCompleto () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"endereco/completo/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaEnderecoEstado () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"endereco/estado/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaEnderecoLogradouro () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"endereco/logradouro/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaEnderecoNumero () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"endereco/numero/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaEnderecoPais () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"endereco/pais/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaEnderecoPaisFixo () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"endereco/pais-fixo/index.html\",\r\n scope: {\r\n pais: '@'\r\n }\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaEnderecoSuframa () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"endereco/suframa/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaInscricaoEstadual () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"inscricao-estadual/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaInscricaoMunicipal () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"inscricao-municipal/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaIntranetType () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"intranet-type/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaLineInterest () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"line-interest/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaLineInterestColEq () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"line-interest-col-eq/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaLinhaInteresse () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"linha-interesse/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaNomeFantasia () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"nome-fantasia/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaPossuiCnpjCadastrado () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"possui-cnpj-cadastrado/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaPrazoNfe () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"prazo-nfe/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaRazaoSocial () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"razao-social/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaRfc () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"rfc/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaSalesTaxExempt () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"sales-tax-exempt/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaSegmentoEmpresa () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"segmento-empresa/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaSetor () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"setor/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaSimplesNacional () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"simples-nacional/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaSuportaRetencao () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"suporta-retencao/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaTipoCliente () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"tipo-cliente/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaTaxId () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"tax-id/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaTipoEmpresa () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"tipo-empresa/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaTiposPessoasChile () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"tipos-pessoas/chile/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaTiposPessoasColombia () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"tipos-pessoas/colombia/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaTiposPessoasPeru () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"tipos-pessoas/peru/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaTiposPessoasEquador () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"tipos-pessoas/equador/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadAtaAutoridades () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/ata-autoridades/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadBankStatements () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/bank-statements/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadBankingCommercialsReferences () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/banking-commercials-references/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadChamberOfCommerceAndCertificate () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/chamber-of-commerce-and-certificate/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadCertificadoConstituicao () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/certificado-constituicao/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadCommercialReferences () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/commercial-references/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadCommercialReferencesTwoFiles () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/commercial-references-two-files/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadContratoSocial () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/contrato-social/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadDni () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/dni/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadSri () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/sri/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadDeclaracaoImposto () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/declaracao-imposto/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadFinancialStatements () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/financial-statements/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadFinancialStatementsCurrentYear () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/financial-statements-current-year/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadFinancialStatementsLastYear () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/financial-statements-last-year/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadIgv () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/igv/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadInscricaoImpostos () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/inscricao-impostos/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadLegalRepresentativeId () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/legal-representative-id/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadLicencaFuncionamento () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/licenca-funcionamento/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadEscriturasEmpresa () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/escrituras-empresa/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadEstadosFinanceirosAno () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/estados-financeiros-ano/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadIdentificacaoFiscal () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/identificacao-fiscal/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadCopiaIdRepresentante () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/copia-id-representant/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadCertificadoResidente () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/certificado-residente/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadOtherFiles () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/other-files/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadSingleDocument () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/single-document/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadCertificateShareholder () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/certificado-composiciĆ³n-accionaria/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaUploadSingleTaxRegistration () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"upload/single-tax-registration/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaVendedorWestcon () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"vendedor-westcon/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaWebSite () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"web-site/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroAcionista () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"cadastro-acionista/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroNameRepresentant () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"name-representant/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmailRepresentant () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"email-representant/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroQuantidadeSolicitadaUsd () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: FIELDS_PATH + \"quantidade-solicitada-usd/index.html\"\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .directive('cadastroEmpresaModalAvisoContato', cadastroEmpresaModalAvisoContato)\r\n .directive('cadastroEmpresaModalCuit', cadastroEmpresaModalCuit)\r\n .directive('cadastroEmpresaModalError', cadastroEmpresaModalError)\r\n .directive('cadastroEmpresaModalSucesso', cadastroEmpresaModalSucesso)\r\n .directive('cadastroEmpresaModalTerm', cadastroEmpresaModalTerm)\r\n\r\n .directive('cadastroEmpresaRodape', cadastroEmpresaRodape)\r\n .directive('cadastroEmpresaTopo', cadastroEmpresaTopo)\r\n\r\n .directive('myValidator', myValidator)\r\n .directive('myValidatorMessage', myValidatorMessage)\r\n .directive('myValidatorPassword', myValidatorPassword)\r\n .directive('myValidatorLogin', myValidatorLogin)\r\n .directive('myOnlyNumber', myOnlyNumber)\r\n .directive('myMaskNumber', myMaskNumber)\r\n .directive('myForceBind', myForceBind);\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaModalAvisoContato () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/company-registry/components/partials/modal-aviso-contato/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaModalCuit () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/company-registry/components/partials/modal-cuit/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaModalError () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/company-registry/components/partials/modal-error/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaModalSucesso () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/company-registry/components/partials/modal-sucesso/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaModalTerm () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/company-registry/components/partials/modal-term/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaRodape () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/company-registry/components/partials/rodape/index.html\",\r\n scope: { \r\n showModalTerm: '@',\r\n pais: '@'\r\n }\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function cadastroEmpresaTopo () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/company-registry/components/partials/topo/index.html\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function myValidator () {\r\n return {\r\n restrict: \"A\",\r\n require: \"ngModel\",\r\n link: function (scope, element, attrs, ctrl) {\r\n ctrl.$validators.myValidator = function () {\r\n if (ctrl.$dirty === false && ctrl.$pristine === true) {\r\n return true;\r\n }\r\n return !ctrl.$isEmpty(ctrl.$viewValue);\r\n };\r\n element.bind(\"blur\", function (evt) {\r\n ctrl.$setDirty(true);\r\n ctrl.$error.myValidator = !ctrl.$validators.myValidator();\r\n });\r\n }\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function myValidatorMessage () {\r\n return {\r\n restrict: \"E\",\r\n template: \"{{ 'FieldRequired' | translate }}\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function myValidatorPassword () {\r\n return {\r\n restrict: \"E\",\r\n template: \"{{ 'PasswordLength' | translate }}\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function myValidatorLogin () {\r\n return {\r\n restrict: \"E\",\r\n template: \"{{ 'LoginIsNotEmail' | translate }}\"\r\n };\r\n }\r\n\r\n /** @ngInject */\r\n function myOnlyNumber () { \r\n return {\r\n restrict: \"A\",\r\n require: \"ngModel\",\r\n link: function (scope, element, attrs, ctrl) { \r\n var _formatValue = function (value) {\r\n if (!value) return;\r\n return value.replace(/[^0-9]+/g, \"\");\r\n };\r\n element.bind(\"keyup\", function (event) { \r\n ctrl.$setViewValue(_formatValue(ctrl.$viewValue));\r\n ctrl.$render();\r\n }); \r\n }\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function myMaskNumber () { \r\n return {\r\n restrict: \"A\",\r\n require: \"ngModel\",\r\n link: function (scope, element, attrs, ctrl) { \r\n element.bind(\"keyup\", function (event) { \r\n ctrl.$setViewValue(ctrl.$viewValue.replace(/[^\\d,]/gi, ''));\r\n ctrl.$render();\r\n }); \r\n }\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function myForceBind () {\r\n return {\r\n require: '^form',\r\n priority: -1,\r\n link: function (scope, element, attrs, form) {\r\n \r\n // Array com inputs names que serĆ£o ignorados na validaĆ§Ć£o.\r\n var arrIgnoredFields = [ 'isDeclared', 'mainContactOnly', 'selectPrazoNfe', 'condicaoPagamentoArquivo', 'hasCNPJ' ];\r\n\r\n element.bind('submit', function () {\r\n if (form.$invalid) {\r\n angular.forEach(form, function (item) {\r\n angular.forEach(item, function (value) {\r\n if (!_.isEmpty(value)) {\r\n if (typeof value.$name === 'string') {\r\n var ignore = arrIgnoredFields.filter(function (field) {\r\n return field === value.$name;\r\n }).length > 0;\r\n if (ignore) return;\r\n }\r\n if (typeof value.$setDirty === 'function') value.$setDirty(true);\r\n if (value.hasOwnProperty('$modelValue')) {\r\n if (_.isEmpty(value.$viewValue)) value.$setViewValue(null);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n });\r\n }\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.company-registry')\r\n .directive('captcha', captcha)\r\n .directive('precadastro', precadastro)\r\n .directive('precadastroArgentina', precadastroArgentina)\r\n .directive('precadastroBrasil', precadastroBrasil)\r\n .directive('precadastroCala', precadastroCala)\r\n .directive('precadastroChile', precadastroChile)\r\n .directive('precadastroColombia', precadastroColombia)\r\n .directive('precadastroMexico', precadastroMexico)\r\n .directive('precadastroPeru', precadastroPeru)\r\n .directive('precadastroEquador', precadastroEquador)\r\n .directive('cuitValidator', cuitValidator)\r\n .directive('ccValidator', ccValidator)\r\n .directive('nitValidator', nitValidator)\r\n .directive('rutValidator', rutValidator)\r\n .directive('diValidator', diValidator)\r\n .directive('rucValidator', rucValidator)\r\n .directive('rucValidatorEquador', rucValidatorEquador)\r\n .directive('rfcValidator', rfcValidator)\r\n .directive('cnpjValidator', cnpjValidator);\r\n\r\n /** @ngInject */\r\n function captcha () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/company-registry/components/partials/precadastro/captcha.html\"\r\n };\r\n };\r\n\r\n /** @ngInject */\r\n function precadastro () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/company-registry/components/partials/precadastro/index.html\"\r\n };\r\n };\r\n\r\n /** @ngInject */\r\n function precadastroArgentina () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/company-registry/components/partials/precadastro/countries/argentina.html\"\r\n };\r\n };\r\n\r\n /** @ngInject */\r\n function precadastroBrasil () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/company-registry/components/partials/precadastro/countries/brasil.html\"\r\n };\r\n };\r\n\r\n /** @ngInject */\r\n function precadastroCala () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/company-registry/components/partials/precadastro/countries/cala.html\"\r\n };\r\n };\r\n\r\n /** @ngInject */\r\n function precadastroChile () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/company-registry/components/partials/precadastro/countries/chile.html\"\r\n };\r\n };\r\n\r\n /** @ngInject */\r\n function precadastroColombia () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/company-registry/components/partials/precadastro/countries/colombia.html\"\r\n };\r\n };\r\n\r\n /** @ngInject */\r\n function precadastroMexico () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/company-registry/components/partials/precadastro/countries/mexico.html\"\r\n };\r\n };\r\n\r\n /** @ngInject */\r\n function precadastroPeru () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/company-registry/components/partials/precadastro/countries/peru.html\"\r\n };\r\n };\r\n\r\n /** @ngInject */\r\n function precadastroEquador () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/company-registry/components/partials/precadastro/countries/equador.html\"\r\n };\r\n };\r\n \r\n // VALIDATORS \r\n\r\n /** @ngInject */\r\n function cuitValidator () {\r\n return {\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: function (scope, elm, attr, ctrl) {\r\n ctrl.$validators.cuitValidator = function (modelValue, viewValue) {\r\n if (ctrl.$isEmpty(modelValue)) {\r\n return true;\r\n }\r\n return isValidCuit(viewValue);\r\n };\r\n }\r\n };\r\n };\r\n\r\n /** @ngInject */\r\n function ccValidator () {\r\n return {\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: function (scope, elm, attrs, ctrl) {\r\n ctrl.$validators.ccValidator = function (modelValue, viewValue) {\r\n if (ctrl.$isEmpty(modelValue)) {\r\n return true;\r\n }\r\n return isValidCc(viewValue);\r\n };\r\n }\r\n };\r\n };\r\n\r\n /** @ngInject */\r\n function nitValidator () {\r\n return {\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: function (scope, elm, attrs, ctrl) {\r\n ctrl.$validators.nitValidator = function (modelValue, viewValue) {\r\n if (!scope.company.validateTaxID) {\r\n return true;\r\n }\r\n if (ctrl.$isEmpty(modelValue)) {\r\n return true;\r\n }\r\n return isValidNit(viewValue);\r\n };\r\n }\r\n };\r\n };\r\n\r\n /** @ngInject */\r\n function rutValidator () {\r\n return {\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: function (scope, elm, attrs, ctrl) {\r\n ctrl.$validators.rutValidator = function (modelValue, viewValue) {\r\n if (ctrl.$isEmpty(modelValue)) {\r\n return true;\r\n }\r\n return isValidRut(viewValue);\r\n };\r\n }\r\n };\r\n };\r\n\r\n /** @ngInject */\r\n function diValidator () {\r\n return {\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: function (scope, elm, attrs, ctrl) {\r\n ctrl.$validators.diValidator = function (modelValue, viewValue) {\r\n if (ctrl.$isEmpty(modelValue)) {\r\n return true;\r\n }\r\n return isValidDi(viewValue);\r\n };\r\n }\r\n };\r\n };\r\n\r\n /** @ngInject */\r\n function rucValidator () {\r\n return {\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: function (scope, elm, attrs, ctrl) {\r\n ctrl.$validators.rucValidator = function (modelValue, viewValue) {\r\n if (ctrl.$isEmpty(modelValue)) {\r\n return true;\r\n }\r\n return isValidRuc(viewValue);\r\n };\r\n }\r\n };\r\n };\r\n\r\n /** @ngInject */\r\n function rucValidatorEquador () {\r\n return {\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: function (scope, elm, attrs, ctrl) {\r\n ctrl.$validators.rucValidatorEquador = function (modelValue, viewValue) {\r\n if (!scope.company.validateTaxID) {\r\n return true;\r\n }\r\n if (ctrl.$isEmpty(modelValue)) {\r\n return true;\r\n }\r\n return isValidRucEquador(viewValue);\r\n };\r\n }\r\n };\r\n };\r\n\r\n /** @ngInject */\r\n function rfcValidator () {\r\n return {\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: function (scope, elm, attrs, ctrl) {\r\n ctrl.$validators.rfcValidator = function (modelValue, viewValue) {\r\n if (ctrl.$isEmpty(modelValue)) {\r\n return true;\r\n }\r\n return isValidRFC(viewValue);\r\n //return true;\r\n };\r\n }\r\n };\r\n };\r\n\r\n /** @ngInject */\r\n function cnpjValidator () {\r\n return {\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: function (scope, elm, attrs, ctrl) {\r\n ctrl.$validators.cnpjValidator = function (modelValue, viewValue) {\r\n if (ctrl.$isEmpty(modelValue)) {\r\n return true;\r\n }\r\n return isValidCnpj(viewValue);\r\n };\r\n }\r\n };\r\n };\r\n\r\n // VALIDATE FUNCTIONS\r\n\r\n function isValidCuit (cuit) {\r\n cuit = cuit.replace(/\\D+/g,'');\r\n\r\n if (!angular.isDefined(cuit) || cuit.length !== 11) {\r\n return false;\r\n }\r\n\r\n var acum = 0;\r\n var digits = cuit.split('');\r\n var digit = digits.pop();\r\n\r\n for (var i = 0; i < digits.length; i++) {\r\n acum += digits[9 - i] * (2 + i % 6);\r\n }\r\n\r\n var verif = 11 - acum % 11;\r\n\r\n if (verif === 11) {\r\n verif = 0;\r\n }\r\n\r\n return parseInt(digit) === verif;\r\n }\r\n\r\n function isValidCc (cc) {\r\n return true;\r\n }\r\n\r\n function isValidNit (nit) {\r\n nit = nit.replace(/\\[a-z\\]|\\.|\\-/gi,'');\r\n if (nit.length != 10) {\r\n return false;\r\n }\r\n var numbers = [];\r\n for (var i = 0; i < nit.length; i++) {\r\n if (isNaN(Number(nit[i]))) {\r\n return false;\r\n }\r\n numbers[i] = nit[i];\r\n }\r\n var v = 41 * numbers[0] +\r\n 37 * numbers[1] +\r\n 29 * numbers[2] +\r\n 23 * numbers[3] +\r\n 19 * numbers[4] +\r\n 17 * numbers[5] +\r\n 13 * numbers[6] +\r\n 7 * numbers[7] +\r\n 3 * numbers[8];\r\n\r\n v = v % 11;\r\n if (v >= 2) {\r\n v = 11 - v;\r\n }\r\n return v == numbers[9];\r\n }\r\n\r\n function isValidDi(di) {\r\n if (di.length != 11) {\r\n return false;\r\n }\r\n\r\n if (di.substring(0, 1) != 1) {\r\n return false;\r\n }\r\n\r\n return true;\r\n \r\n }\r\n\r\n function isValidRuc(ruc) {\r\n if (ruc.length != 11) {\r\n return false;\r\n }\r\n\r\n if (ruc.substring(0, 2) != 20) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function isValidRucEquador(ruc) {\r\n ruc = ruc.replace(/\\.|\\-/gi,'');\r\n if (ruc.length != 13) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function isValidRut(rut) {\r\n rut = rut.replace(/\\.|\\-/gi,'');\r\n if (rut.length != 9) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n function isValidRFC(rfc, aceptarGenerico) {\r\n var rfc = rfc.replace(/\\-/g, '');\r\n var re = /^([A-ZƑ&]{3,4}) ?(?:- ?)?(\\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\\d|3[01])) ?(?:- ?)?([A-Z\\d]{2})([A\\d])$/;\r\n var validado = rfc.match(re);\r\n\r\n return validado ? true : false;\r\n }\r\n\r\n function isValidCnpj (cnpj) {\r\n cnpj = cnpj.replace(/\\D+/g,'');\r\n \r\n if (cnpj == \"0\".repeat(14) || cnpj == \"9\".repeat(14)) return true;\r\n else if (cnpj.length != 14) return false;\r\n \r\n var multiplicador1 = [ 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 ];\r\n var multiplicador2 = [ 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 ];\r\n var digitos = cnpj.substring(12);\r\n var soma;\r\n var resto;\r\n var numeros;\r\n\r\n // Validando primeiro dĆ­gito\r\n soma = 0;\r\n numeros = cnpj.substring(0,12);\r\n for (var i = 0; i < 12; i++)\r\n soma += numeros[i] * multiplicador1[i];\r\n\r\n resto = (soma % 11);\r\n resto = (resto < 2) ? 0 : 11 - resto;\r\n\r\n if (resto != digitos.charAt(0))\r\n return false;\r\n\r\n // Validando segundo dĆ­gito\r\n soma = 0;\r\n numeros = cnpj.substring(0,13);\r\n for (var i = 0; i < 13; i++)\r\n soma += numeros[i] * multiplicador2[i];\r\n\r\n resto = (soma % 11);\r\n resto = (resto < 2) ? 0 : 11 - resto;\r\n\r\n if (resto != digitos.charAt(1))\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.company-registry')\r\n .factory('$companyFactory', function () {\r\n\r\n var vm = this;\r\n\r\n vm.GetCompanies = function () {\r\n return [\r\n {\r\n Text: 'Argentina',\r\n Value: 'argentina',\r\n CodERP: 7,\r\n Url: '/company-registry/argentina'\r\n },\r\n {\r\n Text: 'Brasil',\r\n Value: 'brasil',\r\n CodERP: 1,\r\n Url: '/company-registry/brasil'\r\n },\r\n {\r\n Text: 'Central America, Caribe & USA',\r\n Value: 'cala',\r\n CodERP: 2,\r\n Url: '/company-registry/cala'\r\n },\r\n {\r\n Text: 'Chile',\r\n Value: 'chile',\r\n CodERP: 8,\r\n Url: '/company-registry/chile'\r\n },\r\n {\r\n Text: 'Colombia',\r\n Value: 'colombia',\r\n CodERP: 4,\r\n Url: '/company-registry/colombia'\r\n },\r\n {\r\n Text: 'Ecuador',\r\n Value: 'ecuador',\r\n CodERP: 6,\r\n Url: '/company-registry/ecuador'\r\n },\r\n {\r\n Text: 'Mexico',\r\n Value: 'mexico',\r\n CodERP: 3,\r\n Url: '/company-registry/mexico'\r\n },\r\n {\r\n Text: 'Peru',\r\n Value: 'peru',\r\n CodERP: 5,\r\n Url: '/company-registry/peru'\r\n }\r\n ];\r\n };\r\n\r\n vm.GetRegistryUrl = function (codERP) {\r\n var list = vm.GetCompanies().filter(function (company) { \r\n return company.CodERP == codERP; \r\n });\r\n return list.length > 0 ? list[0].Url : \"\";\r\n }\r\n\r\n return vm;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.company-registry')\r\n .factory('$modalCompany', function ($mdDialog) {\r\n\r\n var vm = this;\r\n\r\n vm.showAlertModal = function (locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: function ($scope, $mdDialog, $formatter, locals) {\r\n $scope.hide = $mdDialog.hide;\r\n $scope.formatDate = $formatter.formatDate;\r\n $scope.dataAtualizacao = locals;\r\n },\r\n templateUrl: 'app/pages/company-registry/modals/partials/alert.html',\r\n parent: angular.element(document.body),\r\n targetEvent: null,\r\n clickOutsideToClose: false,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.showNotFoundModal = function (locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: function ($scope, $mdDialog) {\r\n $scope.hide = $mdDialog.hide;\r\n },\r\n templateUrl: 'app/pages/company-registry/modals/partials/not-found.html',\r\n parent: angular.element(document.body),\r\n targetEvent: null,\r\n clickOutsideToClose: false,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n return vm;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.company-registry')\r\n .service('$companyService', function ($rootScope, $location, $helper, $translate, $companyFactory, CompanyAPI) {\r\n\r\n var vm = this;\r\n\r\n vm.GetCompany = function (codERP, cnpj, tipoJuridico, callback) {\r\n cnpj = (cnpj || '').replace(/[\\./-]/g, '');\r\n \r\n CompanyAPI.getCompany({ codErp: codERP, code: cnpj, tipoJuridico: tipoJuridico }, callback, $helper.throwException);\r\n };\r\n\r\n vm.RegistryNextStep = function (company, isUpdate, isSerasa, keepContacts) {\r\n if (!keepContacts) company.contatos = [];\r\n\r\n $rootScope.company = company;\r\n $rootScope.isUpdate = isUpdate;\r\n $rootScope.isSerasa = isSerasa;\r\n\r\n var nextStepUrl = $companyFactory.GetRegistryUrl(company.codERP);\r\n\r\n $location.path(nextStepUrl);\r\n };\r\n\r\n vm.selectVendor = function(company, vendor) {\r\n if (!_.isEmpty(vendor)) {\r\n company.westconVendor = vendor;\r\n company.vendedor = vendor.name;\r\n company.ukeyVendedor = vendor.westconCode;\r\n }\r\n };\r\n\r\n vm.selectCity = function(company, city) {\r\n if (!_.isEmpty(city)) {\r\n company.city = city;\r\n company.cidade = city.name;\r\n company.ukeyCidade = city.westconCode;\r\n }\r\n };\r\n\r\n // #region Toastr Translations\r\n var keys = [\r\n 'InvalidForm',\r\n 'RegisterCompany.Error',\r\n 'RegisterCompany.FileError',\r\n 'RegisterCompany.Success',\r\n 'RegisterCompany.CuitError',\r\n 'RegisterCompany.ErrorFileSize',\r\n 'Company.RegisterFailure'\r\n ];\r\n\r\n vm.getToastrMessages = function() {\r\n var toastrMessages = {};\r\n $translate(keys).then(function (translations) {\r\n toastrMessages.invalidForm = translations['InvalidForm'];\r\n toastrMessages.error = translations['RegisterCompany.Error'];\r\n toastrMessages.fileError = translations['RegisterCompany.FileError'];\r\n toastrMessages.success = translations['RegisterCompany.Success'];\r\n toastrMessages.cuitError = translations['RegisterCompany.CuitError'];\r\n toastrMessages.errorFileSize = translations['RegisterCompany.ErrorFileSize'];\r\n toastrMessages.errorCompanyRegister = translations['Company.RegisterFailure'];\r\n });\r\n return toastrMessages\r\n }\r\n // #endregion Toastr Translations\r\n\r\n return vm;\r\n })\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.company-registry')\r\n .service('$shareholderService', function () {\r\n\r\n var vm = this;\r\n\r\n vm.ValidatePercentage = function (scope){\r\n if(!scope.shareholdersQty) return true;\r\n\r\n var percentage = 0;\r\n scope.company.Acionista.forEach(function(a) {\r\n if (parseInt(a.Percentagem) < 10) {\r\n return false;\r\n }\r\n percentage += parseInt(a.Percentagem);\r\n });\r\n \r\n if (percentage > 100 || percentage < 90) {\r\n return false\r\n } \r\n\r\n return true;\r\n }\r\n\r\n vm.Update = function (scope, element) {\r\n if (scope.shareholdersQty >= 0) {\r\n if (scope.shareholdersQty > 10) {\r\n scope.shareholdersQty = 10;\r\n }\r\n\r\n var newQty = scope.shareholdersQty;\r\n var refreshQty = newQty - element.valueShareholdersQty.length;\r\n\r\n if (refreshQty > 0) {\r\n for (var index = 0; index < refreshQty; index++) {\r\n scope.valueShareholdersQty.push({\r\n Nome: \"\",\r\n Nacionalidade: \"\",\r\n Aniversario: \"\",\r\n Percentagem: \"\",\r\n TipoSocial: \"\",\r\n InformacaoAdicional: \"\",\r\n });\r\n }\r\n } else if (refreshQty < 0) {\r\n for (var i = 0; i < Math.abs(refreshQty); i++) {\r\n element.valueShareholdersQty.pop();\r\n }\r\n }\r\n }\r\n };\r\n\r\n return vm;\r\n })\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .directive('invoiceMenu', invoiceMenu)\r\n \r\n .directive('enduser', enduser)\r\n .directive('enduserSummary', enduserSummary)\r\n .directive('enduserFilter', enduserFilter)\r\n .directive('enduserForm', enduserForm)\r\n .directive('enduserTable', enduserTable)\r\n \r\n .directive('createBatch', createBatch)\r\n .directive('createBatchForm', createBatchForm)\r\n .directive('createBatchTable', createBatchTable)\r\n\r\n .directive('batchFilter', batchFilter)\r\n .directive('batchForm', batchForm)\r\n .directive('batchTable', batchTable)\r\n\r\n .directive('resellerFilter', resellerFilter)\r\n .directive('resellerTable', resellerTable);\r\n\r\n /** @ngInject */\r\n function invoiceMenu() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/invoice/components/partials/invoice-menu.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function enduser() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/invoice/components/partials/enduser/enduser.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function enduserSummary() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/invoice/components/partials/enduser/enduser-summary.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function enduserFilter() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/invoice/components/partials/enduser/enduser-filter.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function enduserForm() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/invoice/components/partials/enduser/enduser-form.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function enduserTable() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/invoice/components/partials/enduser/enduser-table.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function createBatch() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/invoice/components/partials/batch/create-batch.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function createBatchForm() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/invoice/components/partials/batch/create-batch-form.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function createBatchTable() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/invoice/components/partials/batch/create-batch-table.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function batchFilter() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/invoice/components/partials/batch/batch-filter.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function batchForm() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/invoice/components/partials/batch/batch-form.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function batchTable() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/invoice/components/partials/batch/batch-table.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function resellerFilter() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/invoice/components/partials/reseller/reseller-filter.html\"\r\n }\r\n } \r\n\r\n /** @ngInject */\r\n function resellerTable() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/invoice/components/partials/reseller/reseller-table.html\"\r\n }\r\n } \r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.invoice')\r\n .factory('$commissionStatus', function () {\r\n\r\n /*************************************/\r\n /** Status da ComissĆ£o **/\r\n /** **/\r\n /** 1 - Todos **/\r\n /** 2 - Liberada **/\r\n /** 3 - Paga **/\r\n /** 4 - Cancelada **/\r\n /** 5 - NF jĆ” recebida **/\r\n /** 6 - Pendente **/\r\n /** 7 - Em anĆ”lise **/\r\n /** 8 - Em Atraso **/\r\n /*************************************/\r\n\r\n var vm = this;\r\n\r\n vm.Get = function () {\r\n\r\n return [\r\n { id: '1', key: 'All' },\r\n { id: '2', key: 'Liberada' },\r\n { id: '3', key: 'Pagas' },\r\n { id: '4', key: 'Canceladas' },\r\n { id: '5', key: 'InvoiceAlreadyReceived' },\r\n { id: '6', key: 'Pendente' },\r\n { id: '7', key: 'em-analise' },\r\n // { id: '8', key: 'EmAtraso' },\r\n ];\r\n }\r\n\r\n return vm;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.invoice')\r\n .factory('$commissionType', function () {\r\n\r\n /*******************************/\r\n /** Tipo da ComissĆ£o **/\r\n /** **/\r\n /** 1 - Venda **/\r\n /** 2 - Marketing All **/\r\n /** 3 - Marketing FidelizaĆ§Ć£o **/\r\n /** 4 - Marketing Fabricante **/\r\n /** 5 - Todos **/ \r\n /*******************************/\r\n\r\n var vm = this;\r\n\r\n vm.Get = function () {\r\n return [\r\n { id: '1', key: 'Sale' },\r\n { id: '2', key: 'MarketingAll' },\r\n { id: '3', key: 'MarketingLoyalty' },\r\n { id: '4', key: 'MarketingVendor' },\r\n { id: '5', key: 'All' }\r\n ];\r\n }\r\n\r\n return vm;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.invoice')\r\n .factory('$modalInvoiceFactory', function ($mdDialog) {\r\n\r\n var vm = this;\r\n\r\n vm.payNow = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'PayNowModalCtrl',\r\n templateUrl: 'app/pages/invoice/modals/partials/pay-now.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: false,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.sendReceipt = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'SendReceiptModalCtrl',\r\n templateUrl: 'app/pages/invoice/modals/partials/send-receipt.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.sendReceiptSuccess = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'SendReceiptSuccessModalCtrl',\r\n templateUrl: 'app/pages/invoice/modals/partials/send-receipt-success.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.notice = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'NoticeModalCtrl',\r\n templateUrl: 'app/pages/invoice/modals/partials/notice-commission-batch.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.commissionBatchMaxDateNotice = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'CommissionBatchMaxDateNoticeModalCtrl',\r\n templateUrl: 'app/pages/invoice/modals/partials/notice-commission-batch-max-date.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.commissionBatchMaxDateArgentinaNotice = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'CommissionBatchMaxDateNoticeArgentinaModalCtrl',\r\n templateUrl: 'app/pages/invoice/modals/partials/notice-commission-batch-max-date-argentina.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.commissionBatchMaxDateColombiaNotice = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'CommissionBatchMaxDateNoticeColombiaModalCtrl',\r\n templateUrl: 'app/pages/invoice/modals/partials/notice-commission-batch-max-date-colombia.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.commissionBatchSuccess = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'CommissionBatchSuccessModalCtrl',\r\n templateUrl: 'app/pages/invoice/modals/partials/commission-batch-success.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.commissionBatchSuccessCalaArgentina = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'CommissionBatchSuccessCalaArgentinaModalCtrl',\r\n templateUrl: 'app/pages/invoice/modals/partials/commission-batch-success-cala-argentina.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.boleto = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'BoletoModalCtrl',\r\n templateUrl: 'app/pages/invoice/modals/partials/boleto.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.detalhesNfe = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'DetalhesNfeModalCtrl',\r\n templateUrl: 'app/pages/invoice/modals/partials/detalhes-nfe.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.LotesComissaoMessageModalCtrl = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'LotesComissaoMessageModalCtrl',\r\n templateUrl: 'app/pages/invoice/modals/partials/lotesComissaoMessage.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.LotesComissaoMessageColombiaModalCtrl = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'LotesComissaoColombiaMessageModalCtrl',\r\n templateUrl: 'app/pages/invoice/modals/partials/lotesComissaoMessageColombia.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n return vm;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.invoice')\r\n .factory('$titleStatus', function () {\r\n\r\n /*************************/\r\n /** Status do TĆ­tulo **/\r\n /** 1 - Aberto **/\r\n /** 2 - Quitado Total **/\r\n /** 3 - Quitado Parcial **/\r\n /** 4 - Todos **/\r\n /** 5 - Cancelado **/\r\n /*************************/\r\n\r\n var vm = this;\r\n\r\n vm.Get = function () {\r\n return [\r\n { id: '4', key: 'All' },\r\n { id: '1', key: 'Open' },\r\n { id: '2', key: 'TotalPaid' },\r\n { id: '3', key: 'PaidPartial' },\r\n { id: '5', key: 'Canceladas' },\r\n ];\r\n }\r\n\r\n return vm;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.invoice')\r\n .controller('BoletoModalCtrl', BoletoModalCtrl);\r\n\r\n /** @ngInject */\r\n function BoletoModalCtrl (\r\n $scope, \r\n $mdDialog,\r\n locals\r\n ) {\r\n\r\n $scope.keyTitle = locals.typeBankSlip == 'getintouch' ? 'BoletoNaoEncontrado' : 'DadosBoleto';\r\n $scope.cancel = $mdDialog.cancel;\r\n\r\n $scope.nf_banco = locals.nf_banco;\r\n $scope.nf_nossoNumero = locals.nf_nossoNumero;\r\n $scope.nf_CNPJ = locals.nf_CNPJ;\r\n $scope.nf_vcto = locals.nf_vcto;\r\n $scope.typeBankSlip = locals.typeBankSlip;\r\n\r\n $scope.onlyDigits = function (text) {\r\n return text.replace(/\\D/g,'');\r\n };\r\n \r\n $scope.formatNossoNumero = function (value, noDigit) {\r\n value = value.trim();\r\n if (!value) {\r\n return value;\r\n } else if (noDigit) {\r\n return value.slice(0,-1);\r\n } else {\r\n return value.slice(0,-1)+'-'+value.slice(-1);\r\n }\r\n };\r\n\r\n $scope.closeBoletoModal = function () {\r\n $scope.nf_banco = '';\r\n $scope.nf_nossoNumero = '';\r\n $scope.nf_CNPJ = '';\r\n $scope.nf_vcto = '';\r\n $mdDialog.cancel();\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.invoice')\r\n .controller('CommissionBatchMaxDateNoticeArgentinaModalCtrl', CommissionBatchMaxDateNoticeArgentinaModalCtrl);\r\n\r\n /** @ngInject */\r\n function CommissionBatchMaxDateNoticeArgentinaModalCtrl (\r\n $scope, \r\n $mdDialog\r\n ) {\r\n\r\n $scope.keyTitle = 'LiberaciĆ³n';\r\n $scope.cancel = $mdDialog.cancel;\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.invoice')\r\n .controller('CommissionBatchMaxDateNoticeColombiaModalCtrl', CommissionBatchMaxDateNoticeColombiaModalCtrl);\r\n\r\n /** @ngInject */\r\n function CommissionBatchMaxDateNoticeColombiaModalCtrl (\r\n $scope, \r\n $mdDialog\r\n ) {\r\n\r\n $scope.keyTitle = 'LiberaciĆ³n';\r\n $scope.cancel = $mdDialog.cancel;\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.invoice')\r\n .controller('CommissionBatchMaxDateNoticeModalCtrl', CommissionBatchMaxDateNoticeModalCtrl);\r\n\r\n /** @ngInject */\r\n function CommissionBatchMaxDateNoticeModalCtrl (\r\n $scope, \r\n $mdDialog\r\n ) {\r\n\r\n $scope.keyTitle = 'Comunicado';\r\n $scope.cancel = $mdDialog.cancel;\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.invoice')\r\n .controller('CommissionBatchSuccessCalaArgentinaModalCtrl', CommissionBatchSuccessCalaArgentinaModalCtrl);\r\n\r\n /** @ngInject */\r\n function CommissionBatchSuccessCalaArgentinaModalCtrl (\r\n $scope, \r\n $location,\r\n $mdDialog,\r\n locals\r\n ) {\r\n\r\n $scope.keyTitle = 'CreatedWithSuccess';\r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.commissionBatchName = locals.commissionBatchName;\r\n\r\n $scope.close = function () {\r\n $location.url('/invoice/batch');\r\n $mdDialog.cancel();\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.invoice')\r\n .controller('CommissionBatchSuccessModalCtrl', CommissionBatchSuccessModalCtrl);\r\n\r\n /** @ngInject */\r\n function CommissionBatchSuccessModalCtrl (\r\n $scope, \r\n $location,\r\n $mdDialog,\r\n locals\r\n ) {\r\n\r\n $scope.keyTitle = 'CreatedWithSuccess';\r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.commissionBatchName = locals.commissionBatchName;\r\n\r\n $scope.close = function () {\r\n $location.url('/invoice/batch');\r\n $mdDialog.cancel();\r\n }\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.invoice')\r\n .controller('DetalhesNfeModalCtrl', DetalhesNfeModalCtrl);\r\n\r\n /** @ngInject */\r\n function DetalhesNfeModalCtrl (\r\n $scope, \r\n $mdDialog,\r\n locals\r\n ) {\r\n\r\n $scope.keyTitle = 'DadosNfe';\r\n $scope.cancel = $mdDialog.cancel;\r\n\r\n $scope.nfe = locals.nfe;\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.invoice')\r\n .controller('LotesComissaoColombiaMessageModalCtrl', LotesComissaoColombiaMessageModalCtrl);\r\n\r\n /** @ngInject */\r\n function LotesComissaoColombiaMessageModalCtrl (\r\n $scope, \r\n $mdDialog\r\n ) {\r\n\r\n $scope.keyTitle = 'Sepa como anexar Factura de ComisiĆ³n';\r\n $scope.cancel = $mdDialog.cancel;\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.invoice')\r\n .controller('LotesComissaoMessageModalCtrl', LotesComissaoMessageModalCtrl);\r\n\r\n /** @ngInject */\r\n function LotesComissaoMessageModalCtrl (\r\n $scope, \r\n $mdDialog\r\n ) {\r\n\r\n $scope.keyTitle = 'AtenĆ§Ć£o';\r\n $scope.cancel = $mdDialog.cancel;\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.invoice')\r\n .controller('NoticeModalCtrl', NoticeModalCtrl);\r\n\r\n /** @ngInject */\r\n function NoticeModalCtrl (\r\n $scope, \r\n $session,\r\n $mdDialog\r\n ) {\r\n\r\n $scope.keyTitle = 'Comunicado';\r\n $scope.cancel = $mdDialog.cancel;\r\n $session.set('isNoticeModalShown', 'true');\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.invoice')\r\n .controller('PayNowModalCtrl', PayNowModalCtrl);\r\n\r\n /** @ngInject */\r\n function PayNowModalCtrl (\r\n $scope, \r\n $mdDialog, \r\n locals\r\n ) {\r\n\r\n $scope.keyTitle = 'PayNowModal.title';\r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.invoice = locals.invoice;\r\n\r\n var acrescimoPercent = 1.8;\r\n\r\n $scope.recalculateValue = function (value) {\r\n return value + (acrescimoPercent * value) / 100 ;\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.invoice')\r\n .controller('SendReceiptModalCtrl', SendReceiptModalCtrl);\r\n\r\n /** @ngInject */\r\n function SendReceiptModalCtrl (\r\n $rootScope,\r\n $scope, \r\n $session, \r\n $helper,\r\n $mdDialog,\r\n $modalInvoiceFactory, \r\n locals,\r\n ResellerInvoiceAPI\r\n ) {\r\n\r\n $scope.keyTitle = 'SendReceipt';\r\n $scope.cancel = $mdDialog.cancel;\r\n var invoiceNumber = locals.invoice.invoiceNumberOnly + '-' + locals.invoice.invoiceParcel;\r\n\r\n $scope.$on('onFileUpload', function (evt, file) {\r\n $scope.$apply(function () {\r\n $rootScope.loading = true;\r\n var payload = {\r\n invoiceNumber: invoiceNumber, \r\n file: file,\r\n locale: $session.get('locale')\r\n }\r\n ResellerInvoiceAPI.SendReceipt(payload, function (response) {\r\n $mdDialog.hide(true);\r\n $modalInvoiceFactory.sendReceiptSuccess(evt);\r\n $rootScope.loading = false;\r\n }, $helper.throwException);\r\n });\r\n });\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.invoice')\r\n .controller('SendReceiptSuccessModalCtrl', SendReceiptSuccessModalCtrl);\r\n\r\n /** @ngInject */\r\n function SendReceiptSuccessModalCtrl (\r\n $scope, \r\n $mdDialog\r\n ) {\r\n\r\n $scope.keyTitle = 'SendReceiptSuccess';\r\n $scope.cancel = $mdDialog.cancel;\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n // Components\r\n .directive(\"formManageUsers\", formManageUsers)\r\n .directive(\"formNewUser\", formNewUser)\r\n .directive(\"formUpdateUser\", formUpdateUser)\r\n .directive(\"sidebarManageUsers\", sidebarManageUsers)\r\n // Validator\r\n .directive('passwordValidator', passwordValidator);\r\n \r\n /** @ngInject */\r\n function formManageUsers () {\r\n return {\r\n restrict: \"AE\",\r\n templateUrl: \"app/pages/manage-users/components/partials/form-manage-users.html\"\r\n };\r\n }\r\n \r\n /** @ngInject */\r\n function formNewUser () {\r\n return {\r\n restrict: \"AE\",\r\n templateUrl: \"app/pages/manage-users/components/partials/form-new-user.html\"\r\n };\r\n }\r\n \r\n /** @ngInject */\r\n function formUpdateUser () {\r\n return {\r\n restrict: \"AE\",\r\n templateUrl: \"app/pages/manage-users/components/partials/form-update-user.html\"\r\n };\r\n }\r\n \r\n /** @ngInject */\r\n function sidebarManageUsers () {\r\n return {\r\n restrict: \"AE\",\r\n templateUrl: \"app/pages/manage-users/components/partials/sidebar-manage-users.html\"\r\n };\r\n }\r\n \r\n /** @ngInject */\r\n function passwordValidator () {\r\n return {\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: function (scope, elm, attr, ctrl) {\r\n ctrl.$validators.passwordValidator = function (value) {\r\n if (!angular.isDefined(value) || ctrl.$isEmpty(value)) return true;\r\n return $('#password').val() === value;\r\n };\r\n }\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .directive('proposalMenu', proposalMenu)\r\n .directive('renewalProposalSummary', renewalProposalSummary);\r\n\r\n /** @ngInject */\r\n function proposalMenu() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/proposal/components/partials/proposal-menu.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function renewalProposalSummary() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/proposal/components/partials/renewal-proposal-summary.html\"\r\n }\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.quote')\r\n .factory('$modalQuote', function ($mdDialog) {\r\n\r\n var vm = this;\r\n var modalPartials = 'app/pages/quote/modals/partials';\r\n\r\n vm.showQuoteAddDocumentsModal = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'QuoteAddDocumentsModalCtrl',\r\n templateUrl: modalPartials+'/quote-add-documents.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: false,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.showQuoteVersionModal = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'QuoteVersionModalCtrl',\r\n templateUrl: modalPartials+'/quote-version.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: false,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.showQuoteNewContactModal = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'QuoteNewContactModalCtrl',\r\n templateUrl: modalPartials+'/quote-new-contact.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: false,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.showQuoteExpiredModal = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'QuoteExpiredModalCtrl',\r\n templateUrl: modalPartials+'/quote-expired.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: false,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.showQuoteFeedbackErrorModal = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'QuoteFeedbackErrorModalCtrl',\r\n templateUrl: modalPartials+'/quote-feedback-error.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: false,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.showQuoteSendEmailModal = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'QuoteSendEmailModalCtrl',\r\n templateUrl: modalPartials+'/quote-send-email.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: false,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.showQuoteTypeDocumentsModal = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: function ($scope, $mdDialog) {\r\n $scope.keyTitle = 'AP.AddDocuments.Title';\r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.hide = $mdDialog.hide;\r\n },\r\n templateUrl: modalPartials+'/quote-type-documents.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n // Brasil\r\n vm.showQuoteTermsConditionsModal = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: function ($scope, $mdDialog) {\r\n $scope.keyTitle = 'Termos de uso e cobranƧa';\r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.hide = $mdDialog.hide;\r\n },\r\n templateUrl: modalPartials + '/quote-terms-conditions.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n // Cala - English\r\n vm.showQuoteTermsConditionsModalCala = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: function ($scope, $mdDialog) {\r\n $scope.keyTitle = 'TĆ©rminos y Condiciones de la Propuesta';\r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.hide = $mdDialog.hide;\r\n },\r\n templateUrl: modalPartials + '/quote-terms-conditions-Cala.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n // CCA - Espanhol\r\n vm.showQuoteTermsConditionsModalCCA = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: function ($scope, $mdDialog) {\r\n $scope.keyTitle = 'TĆ©rminos y Condiciones de la Propuesta';\r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.hide = $mdDialog.hide;\r\n },\r\n templateUrl: modalPartials + '/quote-terms-conditions-CCA-es.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n // Colombia\r\n vm.showQuoteTermsConditionsModalColombia = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: function ($scope, $mdDialog) {\r\n $scope.keyTitle = 'TĆ©rminos y Condiciones de la Propuesta';\r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.hide = $mdDialog.hide;\r\n },\r\n templateUrl: modalPartials + '/quote-terms-conditions-Colombia.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n // Espanhol\r\n vm.showQuoteTermsConditionsModalPeru = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: function ($scope, $mdDialog) {\r\n $scope.keyTitle = 'TĆ©rminos y Condiciones de la Propuesta';\r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.hide = $mdDialog.hide;\r\n },\r\n templateUrl: modalPartials + '/quote-terms-conditions-peru.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n // Argentina\r\n vm.showQuoteTermsConditionsModalArgentina = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: function ($scope, $mdDialog) {\r\n $scope.keyTitle = 'TĆ©rminos y Condiciones de la Propuesta';\r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.hide = $mdDialog.hide;\r\n },\r\n templateUrl: modalPartials + '/quote-terms-conditions-Argentina.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n // Chile\r\n vm.showQuoteTermsConditionsModalChile = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: function ($scope, $mdDialog) {\r\n $scope.keyTitle = 'TĆ©rminos y Condiciones de la Propuesta';\r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.hide = $mdDialog.hide;\r\n },\r\n templateUrl: modalPartials + '/quote-terms-conditions-Chile.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n // Equador\r\n vm.showQuoteTermsConditionsModalEquador = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: function ($scope, $mdDialog) {\r\n $scope.keyTitle = 'TĆ©rminos y Condiciones de la Propuesta';\r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.hide = $mdDialog.hide;\r\n },\r\n templateUrl: modalPartials + '/quote-terms-conditions-Equador.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n // Espanhol\r\n vm.showQuoteTermsConditionsModalES = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: function ($scope, $mdDialog) {\r\n $scope.keyTitle = 'TĆ©rminos y Condiciones de la Propuesta';\r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.hide = $mdDialog.hide;\r\n },\r\n templateUrl: modalPartials + '/quote-terms-conditions-es.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: true,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.showUpdateCompanyModal = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'UpdateCompanyCtrl',\r\n templateUrl: modalPartials + '/update-company.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: false,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.showVrfOrderModal = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'VrfOrderModalCtrl',\r\n templateUrl: modalPartials + '/vrf-order.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: false,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n return vm;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.quote')\r\n .controller('QuoteAddDocumentsModalCtrl', QuoteAddDocumentsModalCtrl);\r\n\r\n /** @ngInject */\r\n function QuoteAddDocumentsModalCtrl(\r\n $rootScope,\r\n $scope,\r\n $mdDialog,\r\n locals\r\n ) {\r\n $scope.keyTitle = 'AP.AddDocuments.Title';\r\n \r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.hide = $mdDialog.hide;\r\n\r\n // Lista que receberĆ” os documentos do aceite da proposta.\r\n $scope.documentTypes = locals;\r\n $scope.quoteFile = [];\r\n\r\n // Cria um listener para adicionar o arquivo na lista.\r\n // limpa a caixa de arquivos e fecha a modal.\r\n $scope.$on(\"addFile\", function (evt, data) {\r\n $scope.$apply(function () {\r\n $scope.hide(data);\r\n $scope.documentType = {};\r\n $scope.quoteFile = {};\r\n angular.element(document.getElementById('choosefile')).val(null);\r\n });\r\n });\r\n\r\n // Cria um listener para ler o arquivo da caixa de \r\n // arquivos e dispara o mĆ©todo para adiciona-lo.\r\n $scope.$on(\"fileSelected\", function (evt, data) {\r\n $scope.$apply(function () {\r\n var reader = new FileReader();\r\n reader.addEventListener(\"load\", function () {\r\n $scope.$emit(\"addFile\", {\r\n filekey: new Date().getTime(),\r\n filename: data.file.name,\r\n filetitle: $scope.quoteFile.filetitle,\r\n filetype: $scope.documentType.codCategory,\r\n filecategory: $scope.documentType.nameBR,\r\n filebase64: this.result\r\n });\r\n });\r\n reader.readAsDataURL(data.file);\r\n });\r\n });\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.quote')\r\n .controller('QuoteExpiredModalCtrl', QuoteExpiredModalCtrl);\r\n\r\n /** @ngInject */\r\n function QuoteExpiredModalCtrl(\r\n $rootScope,\r\n $scope,\r\n $mdDialog,\r\n $routeParams,\r\n locals\r\n ) {\r\n $scope.keyTitle = 'AP.ProposalExpiredModal.Title';\r\n \r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.hide = $mdDialog.hide;\r\n\r\n $scope.salesAgent = locals;\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.quote')\r\n .controller('QuoteFeedbackErrorModalCtrl', QuoteFeedbackErrorModalCtrl);\r\n\r\n /** @ngInject */\r\n function QuoteFeedbackErrorModalCtrl(\r\n $rootScope,\r\n $scope,\r\n $mdDialog,\r\n locals\r\n ) {\r\n $scope.keyTitle = 'AP.FeedbackErrorModal.Title';\r\n \r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.hide = $mdDialog.hide;\r\n\r\n $scope.error = locals;\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.quote')\r\n .controller('QuoteNewContactModalCtrl', QuoteNewContactModalCtrl);\r\n\r\n /** @ngInject */\r\n function QuoteNewContactModalCtrl(\r\n $rootScope,\r\n $scope,\r\n $mdDialog,\r\n locals\r\n ) {\r\n $scope.keyTitle = 'AP.NewContactModal.Title';\r\n \r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.hide = $mdDialog.hide;\r\n\r\n $scope.contact = {};\r\n $scope.quote = locals;\r\n\r\n // Objeto que receberĆ” a empresa do contato.\r\n $scope.customer = {};\r\n $scope.customers = _.uniqBy([\r\n locals.reseller,\r\n locals.endUser\r\n ], 'id');\r\n\r\n // MĆ©todo que adiciona os contatos da modal no objeto de Proposta.\r\n $scope.onAddContact = function (evt) {\r\n if (evt) evt.preventDefault();\r\n \r\n // Cria uma instĆ¢ncia do contato sem referĆŖncia.\r\n var contact = {\r\n customerId: $scope.customer.id,\r\n economicGroupId: $scope.customer.economicGroupId,\r\n isSelected: true,\r\n contact: Object.assign({}, $scope.contact),\r\n customer: Object.assign({}, $scope.customer),\r\n economicGroup: {\r\n id: $scope.customer.economicGroupId\r\n }\r\n };\r\n\r\n $scope.hide(contact);\r\n\r\n $scope.customer = {};\r\n $scope.contact = {};\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.quote')\r\n .controller('QuoteSendEmailModalCtrl', QuoteSendEmailModalCtrl);\r\n\r\n /** @ngInject */\r\n function QuoteSendEmailModalCtrl (\r\n $rootScope, \r\n $scope, \r\n $helper,\r\n $mdDialog, \r\n $session, \r\n locals, \r\n QuoteAPI,\r\n SweetAlertFactory\r\n ) {\r\n $scope.keyTitle = 'EnviarPropostaPorEmail';\r\n \r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.hide = $mdDialog.hide;\r\n $scope.user = $rootScope.user;\r\n \r\n // Lista que receberĆ” os email que serĆ£o utilzados para enviar email da proposta\r\n $scope.emails = null;\r\n\r\n // MĆ©todo que envia email do pedido.\r\n $scope.onSendQuoteEmail = function (evt) {\r\n $rootScope.loading = true;\r\n\r\n if ($scope.emails) locals.portalUser.Email += ';' + $scope.emails;\r\n\r\n QuoteAPI.SendQuoteEmail(locals, fnAfterSendQuoteEmail, $helper.throwException);\r\n };\r\n\r\n // MĆ©todo chamado apos o enviar do email da proposta.\r\n function fnAfterSendQuoteEmail(response) {\r\n $rootScope.loading = false;\r\n\r\n SweetAlertFactory.showTranslationWithFinally(\r\n 'EmailEnviadoComSucesso', $scope.cancel);\r\n }\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.quote')\r\n .controller('QuoteVersionModalCtrl', QuoteVersionModalCtrl);\r\n\r\n /** @ngInject */\r\n function QuoteVersionModalCtrl(\r\n $rootScope,\r\n $scope,\r\n $mdDialog,\r\n $routeParams,\r\n locals\r\n ) {\r\n $scope.keyTitle = 'AP.ProposalVersionModal.Title';\r\n \r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.hide = $mdDialog.hide;\r\n\r\n $scope.quote = locals;\r\n $scope.version = $routeParams.version;\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.reseller-order')\r\n .controller('UpdateCompanyCtrl', UpdateCompanyCtrl);\r\n\r\n /** @ngInject */\r\n function UpdateCompanyCtrl (\r\n $rootScope,\r\n $scope, \r\n $mdDialog,\r\n $helper,\r\n locals,\r\n QuoteAPI,\r\n SweetAlertFactory\r\n ) {\r\n $scope.keyTitle = 'CompanyUpdate.Title';\r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.hide = $mdDialog.hide;\r\n $scope.companyAddres = {};\r\n $scope.quote = locals.quote;\r\n $scope.addressTypeId = locals.addressTypeId;\r\n $scope.readOnlyFields = locals.readOnlyFields;\r\n $scope.currentAddres = locals.currentAddres;\r\n $scope.addressId = locals.currentAddres != null ? locals.currentAddres.address.id : null;\r\n $scope.salesOrderId = locals.salesOrderId;\r\n $scope.reseller = \"\";\r\n $scope.selectedReseller = null;\r\n $scope.resellers = [];\r\n $scope.contacts = [];\r\n $scope.searchType = \"empresa\";\r\n $scope.selectedContact = null;\r\n $scope.selectedEconomicGroup = null;\r\n $scope.economicsGroups = [];\r\n $scope.economicGroup = \"\";\r\n currentAddres();\r\n\r\n function currentAddres () {\r\n if($scope.currentAddres){\r\n $scope.companyAddres.customerId = $scope.currentAddres.address.customerId;\r\n $scope.companyAddres.economicGroupId = $scope.currentAddres.address.economicGroupId;\r\n $scope.companyAddres.addressTypeId = $scope.currentAddres.address.addressTypeId;\r\n $scope.companyAddres.name = $scope.currentAddres.name;\r\n $scope.companyAddres.tradeName = $scope.currentAddres.tradeName;\r\n $scope.companyAddres.address = $scope.currentAddres.address.address;\r\n $scope.companyAddres.taxId = $scope.currentAddres.taxId;\r\n $scope.companyAddres.neighborhood = $scope.currentAddres.address.area;\r\n $scope.companyAddres.city = $scope.currentAddres.address.city;\r\n $scope.companyAddres.uf = $scope.currentAddres.address.stateAbbreviation;\r\n $scope.companyAddres.country = $scope.currentAddres.address.country;\r\n $scope.companyAddres.cep = $scope.currentAddres.address.zipCode;\r\n $scope.companyAddres.contactName = $scope.currentAddres.contactName;\r\n $scope.companyAddres.contactPhone = $scope.currentAddres.contactPhone;\r\n $scope.companyAddres.contactEmail = $scope.currentAddres.contactEmail;\r\n }\r\n\r\n }\r\n\r\n \r\n $scope.sendCompany = function (form) {\r\n if (form.$invalid) {// se nĆ£o foi preenchido os campos obrigatorios retorna sem salvar\r\n form.$error.required.map(function (field) {\r\n field.$setDirty(true);\r\n });\r\n var translationKeys = [];\r\n translationKeys.unshift('InvalidForm', 'FillRequiredFields', 'LF');\r\n SweetAlertFactory.showTranslationLote(translationKeys);\r\n return;\r\n }\r\n if($scope.quote.decision == 0){ // INTRA-2621, caso Quote chama funĆ§Ć£o para salvar alteraƧƵes temporarias\r\n saveTemporaryQuoteAddress();\r\n }else{\r\n if($scope.currentAddres){\r\n update();\r\n }else{\r\n save();\r\n }\r\n }\r\n }\r\n function saveTemporaryQuoteAddress() {\r\n var requestAddress = {\r\n \"Id\": null,\r\n \"QuoteId\":$scope.quote.id,\r\n \"CustomerId\": $scope.selectedReseller.id,\r\n \"ContactId\": $scope.companyAddres.contactId,\r\n \"TypeId\": $scope.addressTypeId\r\n }\r\n QuoteAPI.PostPostTemporaryQuoteAddress({ request: requestAddress }, requestAddress, fnAfterSendUpdateAddress, $helper.throwException);\r\n\r\n }\r\n function save() {\r\n var requestAddress = {\r\n \"Id\": $scope.companyAddres.customerId,\r\n \"CustomerId\": $scope.companyAddres.customerId,\r\n \"Customer\": {\r\n \"Id\": $scope.companyAddres.customerId,\r\n \"EconomicGroupId\": $scope.companyAddres.economicGroupId,\r\n \"TaxId\": $scope.companyAddres.taxId,\r\n \"Name\": $scope.companyAddres.name,\r\n \"TradeName\": $scope.companyAddres.tradeName,\r\n },\r\n \"TaxId\": $scope.companyAddres.taxId,\r\n \"Name\": $scope.companyAddres.name,\r\n \"TradeName\": $scope.companyAddres.tradeName,\r\n \"addressTypeId\": $scope.companyAddres.addressTypeId,\r\n \"Address\": $scope.companyAddres.address,\r\n \"Area\": $scope.companyAddres.neighborhood,\r\n \"City\": $scope.companyAddres.city,\r\n \"StateAbbreviation\": $scope.companyAddres.uf,\r\n \"ContactId\": $scope.selectedContact ? $scope.selectedContact.Id : null,\r\n \"ContactName\": $scope.companyAddres.contactName,\r\n \"ContactPhone\": $scope.companyAddres.contactPhone,\r\n \"ContactEmail\": $scope.companyAddres.contactEmail,\r\n \"EconomicGroupId\": $scope.companyAddres.economicGroupId,\r\n \"CountryName\": $scope.companyAddres.country,\r\n \"StateInscription\": $scope.companyAddres.uf,\r\n \"IsTaxpayer\": $scope.currentAddres != null ? $scope.currentAddres.address.isTaxpayer : null,\r\n \"ZipCode\": $scope.currentAddres != null ? $scope.currentAddres.address.zipCode : null,\r\n \"CountryCode\": $scope.currentAddres != null ? $scope.currentAddres.address.countryCode : null,\r\n };\r\n $rootScope.loading = true;\r\n QuoteAPI.PostSalesOrderAddress({ salesOrderId: $scope.salesOrderId, request: requestAddress }, requestAddress, fnAfterSendUpdateAddress, $helper.throwException);\r\n \r\n };\r\n\r\n function update() {\r\n var requestAddress = {\r\n \"Id\": $scope.companyAddres.customerId,\r\n \"CustomerId\": $scope.companyAddres.customerId,\r\n \"Customer\": {\r\n \"Id\": $scope.companyAddres.customerId,\r\n \"EconomicGroupId\": $scope.companyAddres.economicGroupId,\r\n \"TaxId\": $scope.companyAddres.taxId,\r\n \"Name\": $scope.companyAddres.name,\r\n \"TradeName\": $scope.companyAddres.tradeName,\r\n },\r\n \"TaxId\": $scope.companyAddres.taxId,\r\n \"Name\": $scope.companyAddres.name,\r\n \"TradeName\": $scope.companyAddres.tradeName,\r\n \"addressTypeId\": $scope.companyAddres.addressTypeId,\r\n \"Address\": $scope.companyAddres.address,\r\n \"Area\": $scope.companyAddres.neighborhood,\r\n \"City\": $scope.companyAddres.city,\r\n \"StateAbbreviation\": $scope.companyAddres.uf,\r\n \"ContactId\": $scope.selectedContact ? $scope.selectedContact.Id : null,\r\n \"ContactName\": $scope.companyAddres.contactName,\r\n \"ContactPhone\": $scope.companyAddres.contactPhone,\r\n \"ContactEmail\": $scope.companyAddres.contactEmail,\r\n \"EconomicGroupId\": $scope.companyAddres.economicGroupId,\r\n \"CountryName\": $scope.companyAddres.country,\r\n \"StateInscription\": $scope.companyAddres.uf,\r\n \"IsTaxpayer\": $scope.currentAddres.address.isTaxpayer,\r\n \"ZipCode\": $scope.currentAddres.address.zipCode,\r\n \"CountryCode\": $scope.currentAddres.address.countryCode,\r\n };\r\n $rootScope.loading = true;\r\n QuoteAPI.PutSalesOrderAddress({ salesOrderAddressId: $scope.addressId, request: requestAddress }, requestAddress, fnAfterSendUpdateAddress, $helper.throwException);\r\n \r\n };\r\n\r\n function fnAfterSendUpdateAddress(response) {\r\n // Cria uma instĆ¢ncia do contato sem referĆŖncia. \r\n $rootScope.loading = false; \r\n var companyResponse = {\r\n \"name\": $scope.companyAddres.name,\r\n \"taxId\": $scope.companyAddres.taxId,\r\n \"address\": {\r\n \"id\": $scope.addressId,\r\n \"address\": $scope.companyAddres.address,\r\n \"zipCode\": $scope.companyAddres.cep,\r\n \"city\": $scope.companyAddres.city,\r\n \"area\": $scope.companyAddres.neighborhood,\r\n \"stateAbbreviation\": $scope.companyAddres.uf,\r\n \"country\": $scope.companyAddres.country,\r\n \"contactName\": $scope.companyAddres.contactName,\r\n \"contactPhone\": $scope.companyAddres.contactPhone,\r\n \"contactEmail\": $scope.companyAddres.contactEmail,\r\n \"contactId\": $scope.companyAddres.contactId,\r\n \"customerId\": $scope.selectedReseller.id\r\n },\r\n \"tradeName\": $scope.companyAddres.tradeName,\r\n \"economicGroup\": $scope.selectedReseller != null ? $scope.selectedReseller.economicGroupName : null,\r\n \"contactName\": $scope.companyAddres.contactName,\r\n \"contactPhone\": $scope.companyAddres.contactPhone,\r\n \"contactEmail\": $scope.companyAddres.contactEmail,\r\n \"contactId\": $scope.companyAddres.contactId,\r\n \r\n };\r\n\r\n $scope.hide(companyResponse);\r\n\r\n $scope.selectedReseller = null;\r\n $scope.selectedEconomicGroup = null;\r\n $scope.currentAddres = null;\r\n $scope.selectedContact = null;\r\n }\r\n\r\n $scope.getResellerForAutoComplete = function(searchText) {\r\n if(searchText == null || searchText == \"\"){\r\n $scope.resellers = [];\r\n return $scope.resellers;\r\n }\r\n \r\n var resellerPromise = QuoteAPI.GetResellerForAutoComplete({ economicGroupId: $scope.quote.reseller.companyCodeId, text: searchText }, function (response) {\r\n $scope.resellers = response;\r\n }, $helper.throwException);\r\n\r\n return resellerPromise.$promise.then(function (result) {\r\n $scope.resellers = result;\r\n return $scope.resellers;\r\n });\r\n \r\n }\r\n\r\n $scope.onSelectedReseller = function (item) { \r\n if(item == null){\r\n return;\r\n }\r\n $scope.selectedReseller = item;\r\n getAddress($scope.selectedReseller);\r\n getContact($scope.selectedReseller);\r\n };\r\n\r\n function getAddress(item) {\r\n $rootScope.loading = true;\r\n QuoteAPI.GetSalesOrderAddress({ customerId: item.id }, function (response) {\r\n $rootScope.loading = false;\r\n if(response != null){\r\n $scope.companyAddres = {\r\n \"id\": $scope.addressId,\r\n \"name\": $scope.selectedReseller.name,\r\n \"tradeName\": $scope.selectedReseller.name,\r\n \"address\": response.address,\r\n \"taxId\": $scope.selectedReseller.taxId,\r\n \"neighborhood\": response.area,\r\n \"city\": $scope.selectedReseller.city,\r\n \"uf\": $scope.selectedReseller.stateAbbreviation,\r\n \"country\": response.country.name,\r\n \"cep\": response.zipCode,\r\n }\r\n }\r\n \r\n }, $helper.throwException);\r\n };\r\n\r\n function getContact(item) {\r\n $rootScope.loading = true;\r\n QuoteAPI.GetContactCustomers({ customerId: item.id }, function (response) {\r\n $rootScope.loading = false;\r\n if(response != null){\r\n $scope.contacts = response.listContactCustomer;\r\n }\r\n }, $helper.throwException);\r\n };\r\n\r\n $scope.getEconomicGroupForAutoComplete = function(searchText) {\r\n if(searchText == null || searchText == \"\"){\r\n $scope.economicsGroups = [];\r\n return $scope.economicsGroups;\r\n }\r\n \r\n var economicGroupPromise = QuoteAPI.GetEconomicGroupForAutoComplete({ companyCodeId: $scope.quote.reseller.companyCodeId, text: searchText }, function (response) {\r\n $scope.economicsGroups = response;\r\n }, $helper.throwException);\r\n\r\n return economicGroupPromise.$promise.then(function (result) {\r\n $scope.economicsGroups = result;\r\n return $scope.economicsGroups;\r\n });\r\n }\r\n\r\n $scope.onSelectedEconomicGroup = function (item) { \r\n if(item == null){\r\n return;\r\n }\r\n $scope.selectedEconomicGroup = item;\r\n getResellerFromEconomicIdAutoComplete(item.id);\r\n };\r\n\r\n $scope.onSelectedContact = function (item) { \r\n if(item == null){\r\n return;\r\n }\r\n $scope.companyAddres.contactName = item.name;\r\n $scope.companyAddres.contactPhone = item.phone;\r\n $scope.companyAddres.contactEmail = item.email;\r\n $scope.companyAddres.contactId = item.id;\r\n };\r\n \r\n\r\n function getResellerFromEconomicIdAutoComplete(economicGroupId) {\r\n QuoteAPI.GetResellerFromEconomicIdAutoComplete({ companyCodeId: $scope.quote.reseller.companyCodeId, economicGroupId: economicGroupId }, function (response) {\r\n if(response != null){\r\n $scope.resellers = response;\r\n }\r\n }, $helper.throwException);\r\n };\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.reseller-order')\r\n .controller('VrfOrderModalCtrl', VrfOrderModalCtrl);\r\n\r\n /** @ngInject */\r\n function VrfOrderModalCtrl (\r\n $scope, \r\n $mdDialog, \r\n locals\r\n ) {\r\n\r\n $scope.keyTitle = 'VRF.Line.Order.Title';\r\n \r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.vrfs = locals;\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .directive('modalComments', modalComments)\r\n .directive('orderReportTableTbody', orderReportTableTbody)\r\n .directive('orderReportTableThead', orderReportTableThead)\r\n .directive('orderTrackerTableTbody', orderTrackerTableTbody)\r\n .directive('orderTrackerTableThead', orderTrackerTableThead)\r\n .directive('orderFilter', orderFilter);\r\n\r\n /** @ngInject */\r\n function modalComments() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/reseller-order/components/partials/modal-comments.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function orderFilter() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/reseller-order/components/partials/order-filter.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function orderReportTableTbody() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/reseller-order/components/partials/order-report-table-tbody.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function orderReportTableThead() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/reseller-order/components/partials/order-report-table-thead.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function orderTrackerTableTbody() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/reseller-order/components/partials/order-tracker-table-tbody.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function orderTrackerTableThead() {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/reseller-order/components/partials/order-tracker-table-thead.html\"\r\n }\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.reseller-order')\r\n .factory('$modalFactory', function ($mdDialog) {\r\n\r\n var vm = this;\r\n\r\n vm.showLastMileModal = function (evt, locals, fnCallback) {\r\n $mdDialog.show({\r\n controller: 'LastMileModalCtrl',\r\n templateUrl: 'app/pages/reseller-order/modals/partials/last-mile.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: false,\r\n locals: locals\r\n }).then(fnCallback);\r\n };\r\n\r\n vm.sendEmail = function (evt, locals, fnCallback){\r\n $mdDialog.show({\r\n controller: 'DelayedOrderModalCtrl',\r\n templateUrl: 'app/pages/reseller-order/modals/partials/message-to-email.html',\r\n parent: angular.element(document.body),\r\n targetEvent: evt,\r\n clickOutsideToClose: false,\r\n locals: locals\r\n }).then(fnCallback);\r\n }\r\n \r\n return vm;\r\n });\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.reseller-order')\r\n .controller('DelayedOrderModalCtrl', DelayedOrderModalCtrl);\r\n\r\n /** @ngInject */\r\n function DelayedOrderModalCtrl (\r\n $scope, \r\n $formatter, \r\n $mdDialog, \r\n locals,\r\n OrderAPI,\r\n $helper\r\n ) {\r\n\r\n $scope.keyTitle = 'Reportar Atraso';\r\n \r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.lastMileTracking = locals;\r\n $scope.formatDate = $formatter.formatDate;\r\n $scope.locals = locals;\r\n $scope.comment = '';\r\n\r\n $scope.send = function() {\r\n\r\n if ($scope.locals.order.isDelayedReported) return;\r\n\r\n var data = {\r\n order: $scope.locals.order,\r\n comment: $scope.comment,\r\n token: $scope.locals.token\r\n };\r\n \r\n if (data.token) {\r\n OrderAPI.ReportDelayedOrderFromHistory(data, $scope.cancel, $helper.throwException);\r\n } else {\r\n OrderAPI.ReportDelayedOrder(data, $scope.cancel, $helper.throwException);\r\n }\r\n }\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my.pages.reseller-order')\r\n .controller('LastMileModalCtrl', LastMileModalCtrl);\r\n\r\n /** @ngInject */\r\n function LastMileModalCtrl (\r\n $scope, \r\n $formatter, \r\n $mdDialog, \r\n locals\r\n ) {\r\n\r\n $scope.keyTitle = 'LastMile.Title';\r\n \r\n $scope.cancel = $mdDialog.cancel;\r\n $scope.lastMileTracking = locals;\r\n $scope.formatDate = $formatter.formatDate;\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .directive('attachmentGrid', attachmentGrid)\r\n .directive('productGridDefective', productGridDefective)\r\n .directive('productGridFaulty', productGridFaulty)\r\n .directive('productGridMissing', productGridMissing)\r\n .directive('productGridReturn', productGridReturn)\r\n\r\n .directive('buttonClearAttachment', buttonClearAttachment)\r\n\r\n .directive('defectFound', defectFound)\r\n .directive('partNumber', partNumber)\r\n .directive('purchaseInvoice', purchaseInvoice)\r\n .directive('returnReason', returnReason)\r\n .directive('rmaQuantity', rmaQuantity)\r\n .directive('serialNumber', serialNumber)\r\n .directive('statusText', statusText)\r\n .directive('testsAlreadyPerformed', testsAlreadyPerformed)\r\n .directive('taxRefund', taxRefund)\r\n .directive('additionalInfo', additionalInfo)\r\n\r\n .directive('billAgain', billAgain)\r\n .directive('defectiveProduct', defectiveProduct)\r\n .directive('faultyProduct', faultyProduct)\r\n .directive('missingProduct', missingProduct)\r\n .directive('returnOfPurchase', returnOfPurchase);\r\n\r\n /** Init Grid **/\r\n /** @ngInject */\r\n function attachmentGrid () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/grids/attachment-grid/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function productGridDefective () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/grids/product-grid-defective/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function productGridFaulty () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/grids/product-grid-faulty/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function productGridMissing () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/grids/product-grid-missing/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function productGridReturn () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/grids/product-grid-return/index.html\"\r\n }\r\n }\r\n /** Final Grid **/\r\n\r\n /** Init Button **/\r\n /** @ngInject */\r\n function buttonClearAttachment () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/buttons/clear-attachments/index.html\"\r\n }\r\n }\r\n /** Final Button **/\r\n\r\n /** Init Input **/\r\n /** @ngInject */\r\n function defectFound () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/inputs/defect-found/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function partNumber () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/inputs/part-number/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function purchaseInvoice () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/inputs/purchase-invoice/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function serialNumber () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/inputs/serial-number/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function rmaQuantity () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/inputs/rma-quantity/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function returnReason () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/inputs/return-reason/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function statusText () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/inputs/status-text/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function testsAlreadyPerformed () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/inputs/tests-already-performed/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function taxRefund () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/inputs/tax-refund/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function additionalInfo () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/inputs/additional-info/index.html\"\r\n }\r\n }\r\n /** Final Input **/\r\n\r\n /** @ngInject */\r\n function billAgain () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/bill-again/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function defectiveProduct () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/defective-product/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function faultyProduct () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/faulty-product/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function missingProduct () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/missing-product/index.html\"\r\n }\r\n }\r\n\r\n /** @ngInject */\r\n function returnOfPurchase () {\r\n return {\r\n restrict: \"E\",\r\n templateUrl: \"app/pages/rma/components/partials/return-of-purchase/index.html\"\r\n }\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular.module('my')\r\n .controller('NavBarCtrl', NavBarCtrl);\r\n\r\n /** @ngInject */\r\n function NavBarCtrl (\r\n $scope, \r\n $location\r\n ) {\r\n \r\n $scope.redirectToCloudSolv = function () {\r\n $location.path('cloud-solv');\r\n }\r\n }\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('my')\r\n .directive('commissionStatusTooltip', function () {\r\n return {\r\n scope: {},\r\n restrict: 'A',\r\n templateUrl: 'app/pages/invoice/tooltip/commission-status/tooltip.html',\r\n transclude: true,\r\n controller: function ($scope, $translate) {\r\n\r\n var keys = [\r\n 'Tooltip.CommissionStatus.Canceled.Label',\r\n 'Tooltip.CommissionStatus.Canceled.Description',\r\n 'Tooltip.CommissionStatus.Released.Label',\r\n 'Tooltip.CommissionStatus.Released.Description',\r\n 'Tooltip.CommissionStatus.Pending.Label',\r\n 'Tooltip.CommissionStatus.Pending.Description',\r\n 'Tooltip.CommissionStatus.PendingContact.Label',\r\n 'Tooltip.CommissionStatus.PendingContact.Description',\r\n 'Tooltip.CommissionStatus.Received.Label',\r\n 'Tooltip.CommissionStatus.Received.Description',\r\n 'Tooltip.CommissionStatus.Paid.Label',\r\n 'Tooltip.CommissionStatus.Paid.Description'\r\n ];\r\n \r\n (function getTranslations() {\r\n\r\n $translate(keys).then(function (translations) {\r\n\r\n $scope.tooltip = [\r\n {\r\n label: translations['Tooltip.CommissionStatus.Canceled.Label'],\r\n description: translations['Tooltip.CommissionStatus.Canceled.Description']\r\n },\r\n {\r\n label: translations['Tooltip.CommissionStatus.Released.Label'],\r\n description: translations['Tooltip.CommissionStatus.Released.Description']\r\n },\r\n {\r\n label: translations['Tooltip.CommissionStatus.Pending.Label'],\r\n description: translations['Tooltip.CommissionStatus.Pending.Description']\r\n },\r\n {\r\n label: translations['Tooltip.CommissionStatus.PendingContact.Label'],\r\n description: translations['Tooltip.CommissionStatus.PendingContact.Description']\r\n },\r\n {\r\n label: translations['Tooltip.CommissionStatus.Received.Label'],\r\n description: translations['Tooltip.CommissionStatus.Received.Description']\r\n },\r\n {\r\n label: translations['Tooltip.CommissionStatus.Paid.Label'],\r\n description: translations['Tooltip.CommissionStatus.Paid.Description']\r\n }\r\n ];\r\n\r\n });\r\n\r\n $scope.$on('$localeChangeSuccess', getTranslations);\r\n \r\n })();\r\n }\r\n };\r\n });\r\n})();\r\n \r\n\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('my')\r\n .directive('titleStatusTooltip', function () {\r\n return {\r\n scope: {},\r\n restrict: 'A',\r\n templateUrl: 'app/pages/invoice/tooltip/title-status/tooltip.html',\r\n transclude: true,\r\n controller: function ($scope, $translate) {\r\n\r\n var keys = [\r\n 'Tooltip.TitleStatus.ParcelReceivable.Label',\r\n 'Tooltip.TitleStatus.ParcelReceivable.Description',\r\n 'Tooltip.TitleStatus.ParcelCanceled.Label',\r\n 'Tooltip.TitleStatus.ParcelCanceled.Description',\r\n 'Tooltip.TitleStatus.UponExpiration.Label',\r\n 'Tooltip.TitleStatus.UponExpiration.Description',\r\n 'Tooltip.TitleStatus.InArrears.Label',\r\n 'Tooltip.TitleStatus.InArrears.Description',\r\n 'Tooltip.TitleStatus.Cleared.Label',\r\n 'Tooltip.TitleStatus.Cleared.Description',\r\n 'Tooltip.TitleStatus.FutureDelivery.Label',\r\n 'Tooltip.TitleStatus.FutureDelivery.Description',\r\n ];\r\n\r\n (function getTranslations() {\r\n\r\n $translate(keys).then(function (translations) {\r\n\r\n $scope.tooltip = [\r\n {\r\n label: translations['Tooltip.TitleStatus.ParcelReceivable.Label'],\r\n description: translations['Tooltip.TitleStatus.ParcelReceivable.Description']\r\n },\r\n {\r\n label: translations['Tooltip.TitleStatus.ParcelCanceled.Label'],\r\n description: translations['Tooltip.TitleStatus.ParcelCanceled.Description']\r\n },\r\n {\r\n label: translations['Tooltip.TitleStatus.UponExpiration.Label'],\r\n description: translations['Tooltip.TitleStatus.UponExpiration.Description']\r\n },\r\n {\r\n label: translations['Tooltip.TitleStatus.InArrears.Label'],\r\n description: translations['Tooltip.TitleStatus.InArrears.Description']\r\n },\r\n {\r\n label: translations['Tooltip.TitleStatus.Cleared.Label'],\r\n description: translations['Tooltip.TitleStatus.Cleared.Description']\r\n },\r\n {\r\n label: translations['Tooltip.TitleStatus.FutureDelivery.Label'],\r\n description: translations['Tooltip.TitleStatus.FutureDelivery.Description']\r\n }\r\n ];\r\n\r\n });\r\n\r\n $scope.$on('$localeChangeSuccess', getTranslations);\r\n \r\n })();\r\n\r\n }\r\n };\r\n });\r\n})();\r\n \r\n\nangular.module('my').run(['$templateCache', function($templateCache) {$templateCache.put('app/components/company-registry/form.html','

{{\\'CadastroNovoUsuarioFinal\\' | translate}}

{{\\'DadosEmpresa\\' | translate}}

{{\\'Contatoprincipaldousuario\\' | translate}}

{{\\'ContatoResponsavelporNFE\\' | translate}}

{{\\'contatoresponsavelporcompras\\' | translate}}

{{\\'Contatoresponsavelporcontasapagar\\' | translate}}

');\n$templateCache.put('app/components/dashboard/card.html','

{{ item.title | translate }}

{{ item.text | translate }}

');\n$templateCache.put('app/components/dashboard/powerbi.html','

Microsoft CSP

');\n$templateCache.put('app/components/dashboard/slides.html','
');\n$templateCache.put('app/components/new-pagination/index.html','
  • 0\" class=\"lines-per-page\">{{ paginated.currentPage }} - {{ paginated.totalPages }} {{ \\'Paginate.Pages\\' | translate }} {{ \\'of\\' | translate }} {{ paginated.totalItems }} {{ \\'Paginate.Items\\' | translate }}{{ \\'Paginate.LinesPerPage\\' | translate }}
');\n$templateCache.put('app/components/iquote/redirect.html','
');\n$templateCache.put('app/components/tooltip/tooltip.html','

{{title}}

{{description}}

  • {{item.label}} {{item.description}}
');\n$templateCache.put('app/global/modals/deactivation.html','

Para os usu\\xE1rios do Brasil, a partir do dia 01 de junho o acesso a esta plataforma ser\\xE1 realizada por meio ECExpress.

A p\\xE1gina Fale Conosco continuar\\xE1 ativa.

');\n$templateCache.put('app/directives/my-file-upload/my-file-upload.html','
{{ message }}
');\n$templateCache.put('app/directives/my-modal/my-modal-toolbar.html','

{{ keyTitle | translate }}

');\n$templateCache.put('app/components/company-registry/components/icon-remove.html','');\n$templateCache.put('app/pages/auth/partials/forgot-password.html','
');\n$templateCache.put('app/pages/auth/partials/login-accept-proposal.html','

{{ \"ExplicacaoLoginAcceptProposal\" | translate }}

');\n$templateCache.put('app/pages/auth/partials/login.html','

{{\"ExplicacaoLogin\" | translate}}

{{ \\'AvisoSemUsuario1\\' | translate }}
{{ \\'AvisoSemUsuario2\\' | translate }}

{{\"SemCadastro\" | translate}}
{{\"Cadastrar\" | translate}}
');\n$templateCache.put('app/pages/auth/partials/redirect.html','

{{\\'ProcessandoSocilitacao\\' | translate}}

');\n$templateCache.put('app/pages/auth/partials/reset-password.html','

{{\\'Users.ResetPasswordText\\' | translate}}

= 6\">
');\n$templateCache.put('app/pages/auth/partials/welcome-password.html','

{{\\'Users.TextCreatePassword\\' | translate}}

= 6\">
');\n$templateCache.put('app/pages/business-analytics/partials/index.html','

{{ \"BusinessIntelligence\" | translate }}


');\n$templateCache.put('app/pages/proposal/partials/business-proposal.html','
{{ \\'De\\' | translate }}
{{ \\'Ate\\' | translate }}
{{ \\'De\\' | translate }}
{{ \\'Ate\\' | translate }}
{{ \\'NoProposalFound\\' | translate }}
0\">
Quote ID {{ \\'Fabricante\\' | translate }} {{ \\'ProposalName\\' | translate }} {{ \\'ClienteFinal\\' | translate }} {{ \\'ProposalValue\\' | translate }} {{ \\'QuoteDate\\' | translate }}
{{ quote.quoteId }}{{ replaceCommaByBarN(quote.manufacturerNames) }}{{ quote.quoteName }}{{ quote.quoteName.substring(0, 64) }} 64\">...{{ quote.endUserName }}

{{ quote.endUserCode || \\'-\\' }}

{{ quote.quoteValue | currency:\\'$ \\' }}{{ formatDate(quote.dateQuote) }}{{ \\'PreOrder\\' | translate }} {{ \\'PreOrder\\' | translate }}
');\n$templateCache.put('app/pages/proposal/partials/renewal-proposal.html','
{{ \\'De\\' | translate }}
{{ \\'Ate\\' | translate }}
{{ \\'De\\' | translate }}
{{ \\'Ate\\' | translate }}
{{ \\'NoProposalFound\\' | translate }}
0\">
Quote ID{{ \\'Fabricante\\' | translate }}{{ \\'ClienteFinal\\' | translate }}{{ \\'ContractNumber\\' | translate }}{{ \\'EndSupport\\' | translate }}
{{ FormatoData | translate }}
{{ \\'ValorDoPedido\\' | translate }}
{{ quote.quoteId }}{{ replaceCommaByBarN(quote.manufacturerNames) }}{{ quote.endUserName }}

{{ quote.endUserCode || \\'-\\' }}

{{ quote.contractNumber || \\'-\\' }}{{ formatDate(quote.endSupportDate) }}{{ quote.quoteValue | currency:\\'$ \\' }}
{{ \\'Expired\\' | translate }}
{{ \\'PreOrder\\' | translate }}
');\n$templateCache.put('app/pages/quote/partials/accept-quote-conclusion.html','

{{\\'Fields.ReceiveOrder\\' | translate}}

{{\\'Fields.ReceiveOrder.Thanks\\' | translate}}

{{\\'Fields.ReceiveOrder.OrdersCodes\\' | translate}}

{{ orderCodes }}

{{\\'Fields.ReceiveOrder.Email\\' | translate}}

{{\\'Fields.ReceiveOrder.Consultant\\' | translate}}

{{\\'Fields.ReceiveOrder.Prevision\\' | translate}}

{{\\'Fields.ReceiveOrder.Wait\\' | translate}}


{{\\'Fields.ReceiveOrder.Orders\\' | translate}}
');\n$templateCache.put('app/pages/quote/partials/accept-quote-footer.html','
');\n$templateCache.put('app/pages/quote/partials/accept-quote.html','');\n$templateCache.put('app/pages/quote/partials/quote-add-documents.html','
{{ \\'AP.AddDocuments.Title\\' | translate }}

{{ \\'AP.AddDocuments.Docs\\' | translate }} *

+ {{ \\'AP.AddDocuments.Button\\' | translate }}
{{ quoteFile.filecategory }}
{{ quoteFile.filetitle }}
{{ quoteFile.filename }}
\"excluir\"
');\n$templateCache.put('app/pages/quote/partials/quote-additional-information.html','

{{ \\'AP.AdditionalOrderInformation\\' | translate }}

');\n$templateCache.put('app/pages/quote/partials/quote-general-information.html','

01 {{ \\'AP.GeneralInfo.Title\\' | translate }}

  • {{ quote.name }} - {{ \\'Version\\' | translate }}: {{ quote.quoteVersion || 0 }}

  • {{ quote.salesCountryGroup.aliasDataAcquisition || \\'-\\' }}

  • {{ quote.branch.name }} - {{ quote.branch.stateAbbreviation }}

  • {{ quote.paymentTermsDescription || \\'-\\' }}

  • {{ quote.isInternalUse ? \\'Sim\\' : \\'No\\' | translate }}

  • {{ quote.isDirectInvoice ? \\'Sim\\' : \\'No\\' | translate }}

  • {{ quote.clientNote || \\'-\\' }}

  • {{ quote.reseller.name || \\'-\\' }}

  • {{ quote.reseller.tradeName || \\'-\\' }}

  • {{ quote.reseller.taxId || \\'-\\' }}

  • {{ quote.reseller.addresses[0].address }} - {{ quote.reseller.addresses[0].city }}, {{ quote.reseller.addresses[0].stateAbbreviation }}

  • {{ quote.endUser.name || quote.endUserAlias || \\'-\\' }}

  • {{ quote.endUser.tradeName || quote.endUserAlias || \\'-\\' }}

  • {{ quote.endUser.taxId || \\'-\\' }}

  • {{ quote.endUser.addresses[0].address }} - {{ quote.endUser.addresses[0].city }}, {{ quote.endUser.addresses[0].stateAbbreviation }}

');\n$templateCache.put('app/pages/quote/partials/quote-invoice-contacts.html','

{{ \\'AP.NewContact.Title\\' | translate }}

+ {{ \\'AP.NewContact.AddContacts\\' | translate }}
{{ item.contact.name }}

{{ item.customer.name }}

{{ item.contact.email }}

');\n$templateCache.put('app/pages/quote/partials/quote-items.html','

02 {{ \\'AP.OrderItems.Title\\' | translate }}

{{ option.name }} ({{ (option.isNational ? \\'AP.OrderItems.DomesticProducts\\' : \\'AP.OrderItems.ImportedProducts\\') | translate }})
{{ \\'Product\\' | translate }}
{{ \\'AP.OrderItems.Description\\' | translate }}
{{ \\'AP.OrderItems.Type\\' | translate }}{{ \\'AP.OrderItems.UnitPrice\\' | translate }}{{ \\'Quantidade\\' | translate }}Fat{{ \\'AP.OrderItems.Fees\\' | translate }}{{ \\'Subtotal\\' | translate }}{{ \\'AP.OrderItems.Comments\\' | translate }}
{{ item.productFamilyName }}

{{ item.sku }}

(ST) {{ \\'AP.OrderItems.TaxSubstitution\\' | translate }}

{{ item.name }}

{{ \\'AP.OrderItems.Hardware\\' | translate }} {{ \\'AP.OrderItems.Consumption\\' | translate }} {{ \\'AP.OrderItems.Service\\' | translate }} {{ \\'AP.OrderItems.FixedAsset\\' | translate }} {{ \\'AP.OrderItems.Software\\' | translate }} {{ \\'AP.OrderItems.CashierSoftware\\' | translate }}{{ (!option.isNational ? item.salesPrice : item.nationalSalesPrice) | currency:option.currency+\\' \\' }}{{ item.qty }}{{ item.stateAbbreviation }}

{{ item.ipi }}% IPI

{{ item.icms }}% ICMS

{{ item.taxISS }}% ISS

{{ item.taxPisCofins * 100 }}% PIS/COFINS

{{ (option.isNational ? item.nationalSubTotal : item.subTotal) | currency:option.currency+\\' \\' }}

{{ \\'AP.OrderItems.OptionTotalWithTax\\' | translate }} {{ (!option.isNational ? option.summaryTotalValue : option.nationalTotalWithTaxes) | currency:option.currency+\\' \\' }}

{{ \\'AP.OrderItems.TotalWithoutTax\\' | translate }} {{ (!option.isNational ? option.summaryTotalWithoutTaxes : option.nationalTotalWithoutTaxes) | currency:option.currency+\\' \\' }}

(ST): {{ \\'AP.OrderItems.TaxSubstitution\\' | translate }}
');\n$templateCache.put('app/pages/quote/partials/quote-receiving-material.html','

{{ \\'AP.ResponsibleForReceivingMaterial\\' | translate }}

{{ \\'ErrorInvalidEmail\\' | translate }}
');\n$templateCache.put('app/pages/quote/partials/quote-subtotal.html','
0\">

{{ \\'Subtotal\\' | translate }} ({{ \\'AP.OrderItems.DomesticProducts\\' | translate }}) - {{ quotePayload.nationalTotal | currency:\\'R$ \\' }}

0\">

{{ \\'Subtotal\\' | translate }} ({{ \\'AP.OrderItems.ImportedProducts\\' | translate }}) - {{ quotePayload.dollarTotal | currency:\\'$ \\' }}

1 && quote.isDirectInvoice\">

{{ \\'AP.Subtotal.OptionInformation\\' | translate }}

{{ \\'AP.Subtotal.ContactAM\\' | translate }}

{{ \\'AP.TotalOrderCommission\\' | translate }} - {{ quote.quoteSummary.summaryTotalComission | currency:\\'$\\' }}

');\n$templateCache.put('app/pages/powerbi/partials/index.html','

Bluesky Analytics


');\n$templateCache.put('app/pages/rma/partials/index.html','

RMA

{{ \\'rma.Text\\' | translate }}


{{ \\'rma.Select\\' | translate }}

{{ item.name }}

{{ \\'AdditionalInformation\\' | translate }}

{{ \\'rma.AdditionalInformationSub\\' | translate }}

1. No campo \"Descri\\xE7\\xE3o da Solicita\\xE7\\xE3o acima assinalado\", favor descrever em detalhes o problema, o que est\\xE1 errado, e em caso de defeito informar o mesmo com o m\\xE1ximo de detalhes. O produto com defeito ser\\xE1 reparado ou trocado, conforme Pol\\xEDtica do Fabricante.

2. No caso de optar pela Devolu\\xE7\\xE3o de Compra do produto, o cr\\xE9dito poder\\xE1 ser utilizado para abatimento em futuras compras, ou para abatimento de saldo devedor existente. O valor do cr\\xE9dito ser\\xE1 correspondente ao valor da devolu\\xE7\\xE3o do produto.

3. A responsabilidade do Frete referente a Log\\xEDstica do Processo ser\\xE1 de acordo com a Pol\\xEDtica do Fabricante.

{{ \\'rma.TermsAndConditions\\' | translate }}
');\n$templateCache.put('app/components/global/partials/icons/my-accept.html','');\n$templateCache.put('app/components/global/partials/icons/my-all-download.html','');\n$templateCache.put('app/components/global/partials/icons/my-download.html','');\n$templateCache.put('app/components/global/partials/icons/my-info.html','');\n$templateCache.put('app/components/global/partials/icons/my-sync.html','');\n$templateCache.put('app/components/global/partials/my-footer/index.html','

\\xA9 {{ currentYear }} TD SYNNEX Corporation. All rights reserved. TD SYNNEX, the TD SYNNEX Logo, TECH DATA, the TD Logo, SYNNEX, and the SYNNEX Logo are trademarks or registered trademarks of TD SYNNEX Corporation. Westcon, Comstor and GoldSeal are registered trademarks of WG Service Inc., used under license. Other names and marks are the property of their respective owners.

');\n$templateCache.put('app/components/global/partials/enube/index.html','');\n$templateCache.put('app/components/global/partials/my-navbar/index.html','');\n$templateCache.put('app/components/global/partials/my-loading/index.html','
\"My
');\n$templateCache.put('app/components/global/partials/my-pagination/index.html','
  • 0\" class=\"lines-per-page\">{{ offset + 1 }} - (limit + offset)) && (limit + offset != 0)\">{{ limit + offset }} {{ totalRows }} {{ \\'of\\' | translate }} {{ totalRows }} {{ \\'Paginate.LinesPerPage\\' | translate }}
');\n$templateCache.put('app/components/global/partials/my-support/index.html','
{{ \\'Suporte\\' | translate }}
');\n$templateCache.put('app/components/global/partials/my-select-locale/index.html','
{{ language.name | translate }}
');\n$templateCache.put('app/components/global/partials/my-topo/index.html','');\n$templateCache.put('app/components/global/partials/price-info-filter/index.html','
{{ manufacturer.name | translate }}
{{ homeState }}

{{ d.label | translate }}

{{ d.label | translate }}
{{ destinationState }}
');\n$templateCache.put('app/pages/active-contracts/partials/modal/index.html','

{{ \\'AlteracaoMetodoPagamento\\' | translate }}

{{ \\'Contrato\\' | translate }} {{contract.numeroContrato}}

{{ \\'NovoMetodoPagamento\\' | translate }}

{{ \\'CartaoCredito\\' | translate }}
{{ card.bandera }} - {{ card.digitos }}

');\n$templateCache.put('app/pages/company-registry/partials/argentina/form.html','
{{\\'FileSizeNote\\' | translate}}
');\n$templateCache.put('app/pages/company-registry/partials/brasil/form.html','
');\n$templateCache.put('app/pages/company-registry/partials/cala/form.html','
{{\\'FileSizeNote\\' | translate}}
');\n$templateCache.put('app/pages/active-contracts/partials/list/index.html','

{{ \\'TotalContractsRegistered\\' | translate }} - {{ filteredList.length }}

0\">
{{ \\'Vendor\\' | translate }}{{ \\'FormaPagamento\\' | translate }}
{{ ::contract.vendor }}{{ ::contract.condicaoPagamento }}{{ contract.bandeira + \\' - \\' + contract.numeroCartao }}
  • 0\" class=\"fcor-branco\">{{ offset + 1 }} - (limit + offset)) && (limit + offset != 0)\">{{ limit + offset }} {{ filteredList.length }} {{ \\'of\\' | translate }} {{ filteredList.length }} {{ \\'Paginate.LinesPerPage\\' | translate }}
');\n$templateCache.put('app/pages/company-registry/partials/chile/form.html','
{{\\'FileSizeNote\\' | translate}}
');\n$templateCache.put('app/pages/auth/modals/partials/notice-login.html','
');\n$templateCache.put('app/pages/company-registry/partials/colombia/form.html','
{{\\'FileSizeNote\\' | translate}}
');\n$templateCache.put('app/pages/company-registry/partials/mexico/form.html','
');\n$templateCache.put('app/pages/company-registry/partials/pre-registry/index.html','

{{\\'DadosEmpresa\\' | translate}}

{{ country.Text }}

{{\\'Voltar\\' | translate}}

');\n$templateCache.put('app/pages/company-registry/partials/equador/form.html','
{{\\'FileSizeNote\\' | translate}}
');\n$templateCache.put('app/pages/manage-users/components/partials/form-manage-users.html','

{{\\'DadosUsuario\\' | translate }}


{{\\'Users.PermissoesDoUsuario\\' | translate }}

{{ userGroup.groupSlug | translate }}
');\n$templateCache.put('app/pages/manage-users/components/partials/form-new-user.html','

{{ \\'LoginPassword\\' | translate }}

{{ \\'AsSenhasNaoConferem\\' | translate }}
');\n$templateCache.put('app/pages/manage-users/components/partials/form-update-user.html','

{{ \\'Atualizar\\' | translate }} {{ \\'Senha\\' | translate }}

{{ \\'AsSenhasNaoConferem\\' | translate }}
');\n$templateCache.put('app/pages/manage-users/components/partials/sidebar-manage-users.html','');\n$templateCache.put('app/pages/manage-users/partials/credit-cards-modal/index.html','

{{ \\'CadastroCartaoCredito\\' | translate }}

{{ \\'Card.InformacaoCartao\\' | translate }}

{{ franquia.name }}
{{ month }}{{ year }}

{{ \\'Card.InformacaoTitular\\' | translate }}

{{ \\'Card.InformacaoEndereco\\' | translate }}

0\">{{ item.name }}
{{item.name }}

');\n$templateCache.put('app/pages/contact-us/partials/contact-us/index.html','

{{ \\'ContactUs\\' | translate }}

{{ \\'ContactUs.Text\\' | translate }}


');\n$templateCache.put('app/pages/company-registry/partials/peru/form.html','
{{\\'FileSizeNote\\' | translate}}
');\n$templateCache.put('app/pages/manage-users/partials/form/index.html','

');\n$templateCache.put('app/pages/manage-users/partials/modal/index.html','

{{ \\'GerenciarUsuariosDaRevenda\\' | translate }}


{{ userGroup.groupSlug | translate }}


');\n$templateCache.put('app/pages/manage-users/partials/list/index.html','
{{ userGroup.groupSlug | translate }}

{{ \\'TotalUsersRegistered\\' | translate }} - {{ userCount }}

0\">
{{ \\'Numero\\' | translate }}{{ \\'Nome\\' | translate }}{{ \\'Login\\' | translate }}{{ \\'Email\\' | translate }}{{ \\'UserType\\' | translate }}
{{ ::user.userId }}{{ ::user.name }}{{ ::user.login }}{{ ::user.email }}{{ getAccessGroupSlug(user.userGroupId) | translate }}
  • 0\" class=\"fcor-branco\">{{ offset + 1 }} - (limit + offset)) && (limit + offset != 0)\">{{ limit + offset }} {{ userCount }} {{ \\'of\\' | translate }} {{ userCount }} {{ \\'Paginate.LinesPerPage\\' | translate }}
');\n$templateCache.put('app/pages/manage-users/partials/reseller/index.html','

{{ \\'Reseller.TotalRegistered\\' | translate }} - {{ resellerCount }}

0\">
{{ \\'CNPJ\\' | translate }}{{ \\'Company\\' | translate }}{{ \\'Address\\' | translate }}{{ \\'Situation\\' | translate }}
{{ reseller.cnpj }}{{ reseller.razaoSocial }}{{ reseller.logradouro }} {{ reseller.cidade }}. {{ reseller.estado }} - {{ reseller.pais }}{{ getById(reseller.situacao) | translate }}
  • 0\" class=\"fcor-branco\">{{ offset + 1 }} - (limit + offset)) && (limit + offset != 0)\">{{ limit + offset }} {{ resellerCount }} {{ \\'of\\' | translate }} {{ resellerCount }} {{ \\'Paginate.LinesPerPage\\' | translate }}
');\n$templateCache.put('app/pages/invoice/components/partials/invoice-menu.html','');\n$templateCache.put('app/pages/invoice/modals/partials/boleto.html','

{{ \\'ModalBoletoLinhaUmBradesco\\' | translate }}

https://banco.bradesco/html/classic/produtos-servicos/mais-produtos-servicos/segunda-via-boleto.shtm

{{ \\'ModalBoletoLinhaDoisBradesco\\' | translate }}
{{ \\'ModalBoletoLinhaTresBradesco\\' | translate }}

\"{{

{{ \\'ModalBoletoLinhaQuatroBradesco\\' | translate }}

{{ \\'IDPagador\\' | translate }} - {{onlyDigits(nf_CNPJ)}}

{{ \\'IDBeneficiario\\' | translate }}

{{ \\'NossoNumeroBradesco\\' | translate }} - {{ formatNossoNumero(nf_nossoNumero, true) }}

{{ \\'ModalBoletoLinhaUmSantander\\' | translate }}

https://www.santander.com.br/br/resolva-on-line/emissao-de-2-via-de-boleto-de-cobranca

{{ \\'IDBeneficiario\\' | translate }}

{{ \\'IDPagador\\' | translate }} - {{nf_CNPJ}}

{{ \\'NossoNumeroSantander\\' | translate }}

{{ \\'ModalBoletoDataVcto\\' | translate }} - {{nf_vcto | date:\\'shortDate\\' : format : timezone}}

{{ \\'ModalBoletoDuvidas\\' | translate }} {{ \\'ModalBoletoEmail\\' | translate }}

');\n$templateCache.put('app/pages/invoice/modals/partials/commission-batch-success-cala-argentina.html','

{{ \\'CommissionBatch\\' | translate }} - {{ commissionBatchName }}

{{ \\'CommissionBatch.CalaArgentina.MessageHead\\' | translate }}
{{ \\'CommissionBatch.CalaArgentina.MessageBody\\' | translate }}
');\n$templateCache.put('app/pages/invoice/modals/partials/commission-batch-success.html','

{{ \\'CommissionBatch\\' | translate }} - {{ commissionBatchName }}

{{ \\'CommissionBatch.MessageHead\\' | translate }}
{{ \\'CommissionBatch.MessageBody\\' | translate }}
{{ \\'CommissionBatch.MessageFoot\\' | translate }}
');\n$templateCache.put('app/pages/invoice/modals/partials/detalhes-nfe.html','

{{ \\'TextoNfe\\' | translate }}


http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=


{{ \\'chaveAcesso\\' | translate }}: {{ nfe }}

');\n$templateCache.put('app/pages/invoice/modals/partials/lotesComissaoMessage.html','

Caro Parceiro,

Devido a atualiza\\xE7\\xF5es de sistema, excepcionalmente esse m\\xEAs, todas as notas fiscais de presta\\xE7\\xE3o de servi\\xE7os emitidas contra a TD SYNNEX dever\\xE3o ser escrituradas e enviadas at\\xE9 as 18:00 do dia 18 de Maio de 2021 via Partner Portal .
Notas fiscais emitidas ap\\xF3s esta data n\\xE3o ser\\xE3o recebidas e dever\\xE3o ser canceladas e emitidas no primeiro dia \\xFAtil do m\\xEAs seguinte.

Contamos com a colabora\\xE7\\xE3o de todos.

TD SYNNEX

');\n$templateCache.put('app/pages/invoice/modals/partials/lotesComissaoMessageColombia.html','

  • En el concepto de la factura deben describir claramente el tipo de servicio prestado por el cual se est\\xE1 cobrando la comisi\\xF3n
  • Si el cobro de comisi\\xF3n esta sujeta a una venta excluida NO facturar IVA
  • Si el cobro de comisi\\xF3n esta sujeta a una venta Gabada Facturar con IVA
  • la comisi\\xF3n va a tener una retenci\\xF3n de impuestos del 11% por comisi\\xF3n
  • Elaborar una sola factura con el fin de evitar el volumen operativo (causacion y pagos)
  • ');\n$templateCache.put('app/pages/invoice/modals/partials/notice-commission-batch-max-date-argentina.html','

    {{ \\'CommissionBatch.LimitDate.Message.Argentina.Body1\\' | translate }}{{ \\'CommissionBatch.LimitDate.Message.Argentina.Body1.Destaque\\' | translate }}

    {{ \\'CommissionBatch.LimitDate.Message.Argentina.Body2\\' | translate }}

    TD SYNNEX

    ');\n$templateCache.put('app/pages/invoice/modals/partials/notice-commission-batch-max-date-colombia.html','

    {{ \\'CommissionBatch.LimitDate.Message.Colombia.Body1\\' | translate }}{{ \\'CommissionBatch.LimitDate.Message.Colombia.Body1.Destaque\\' | translate }}

    {{ \\'CommissionBatch.LimitDate.Message.Colombia.Body2\\' | translate }}{{ \\'CommissionBatch.LimitDate.Message.Colombia.Body2.Destaque\\' | translate }}

    TD SYNNEX

    ');\n$templateCache.put('app/pages/invoice/modals/partials/notice-commission-batch-max-date.html','

    Caro Fornecedor,

    Com a obrigatoriedade da EFD-Reinf, institu\\xEDda pela Receita Federal, todas as notas fiscais de presta\\xE7\\xE3o de servi\\xE7os emitidas contra a TD SYNNEX, dever\\xE3o ser escrituradas dentro do m\\xEAs de emiss\\xE3o e, para atendimento \\xE0 esta obriga\\xE7\\xE3o junto ao Fisco, informamos que receberemos notas fiscais de servi\\xE7o impreterivelmente at\\xE9 o 25\\xBA dia do m\\xEAs, sem exce\\xE7\\xE3o.

    Notas fiscais emitidas ap\\xF3s esta data n\\xE3o ser\\xE3o recebidas e dever\\xE3o ser canceladas e emitidas no primeiro dia \\xFAtil do m\\xEAs seguinte.

    Contamos com a colabora\\xE7\\xE3o de todos.

    Equipe TD SYNNEX

    ');\n$templateCache.put('app/pages/invoice/modals/partials/notice-commission-batch.html','

    Caro Fornecedor,

    A partir do dia 01/01/19, a WestconComstor adotar\\xE1 a obrigatoriedade da EFD-Reinf, conforme instru\\xE7\\xE3o normativa n\\xBA 1701/2017, publicada no Di\\xE1rio Oficial da Uni\\xE3o.

    Esta normativa institui a escritura\\xE7\\xE3o fiscal digital de reten\\xE7\\xF5es e outras informa\\xE7\\xF5es fiscais.

    Como consequ\\xEAncia, todas as notas de presta\\xE7\\xE3o de servi\\xE7os emitidas contra a WestconComstor dever\\xE3o por obrigatoriedade ser escrituradas dentro do m\\xEAs de emiss\\xE3o.

    Portanto, para garantir a nossa assertividade, informamos que receberemos notas fiscais de servi\\xE7o at\\xE9 o 25\\xBA dia do m\\xEAs.

    Para notas fiscais faturadas ap\\xF3s este per\\xEDodo, solicitaremos o cancelamento e nova emiss\\xE3o no m\\xEAs subsequente.

    Certos da colabora\\xE7\\xE3o, agradecemos.

    Equipe WestconComstor

    ');\n$templateCache.put('app/pages/invoice/modals/partials/pay-now.html','

    {{ \\'PayNowModal.text\\' | translate }}

    {{ \\'PayNowModal.contentRight.title\\' | translate }}

    TD SYNNEX COLOMBIA LTDA

    NIT: 830.089.336-3

    • {{ \\'PayNowModal.contentRight.entity\\' | translate }}
    • BANCOLOMBIA
    • BANCO CITIBANK
    • {{ \\'PayNowModal.contentRight.account\\' | translate }}
    • 19338275698
    • 0085854011
    • {{ \\'PayNowModal.contentRight.entity\\' | translate }}
    • SANTANDER RIO
    • {{ \\'PayNowModal.contentRight.account\\' | translate }}
    • 000-025113/2

    {{ \\'PayNowModal.footerNote1\\' | translate }}

    {{ \\'PayNowModal.footerNote2\\' | translate }}

    ');\n$templateCache.put('app/pages/invoice/modals/partials/send-receipt-success.html','

    {{ \\'SendReceiptSuccess.message1\\' | translate }}

    {{ \\'SendReceiptSuccess.message2\\' | translate }}

    {{ \\'SendReceiptSuccess.footerNote\\' | translate }}

    Cobranza.Co@westconcomstor-la.com

    ');\n$templateCache.put('app/pages/invoice/modals/partials/send-receipt.html','');\n$templateCache.put('app/pages/dashboard/partials/bluesky-portal/index.html','');\n$templateCache.put('app/pages/manage-users/partials/credit-cards/index.html','

    0\">
    {{ \\'Card.Franquia\\' | translate }}{{ \\'Titular\\' | translate }}{{ \\'Card.NumeroCartao\\' | translate }}{{ \\'Card.DataVencimento\\' | translate }}{{ \\'Default\\' | translate }}
    {{ ::card.bandera }}{{ ::card.nombre }} {{ ::card.apellido }}{{ ::card.digitos }}{{ ::card.caducidad | date: \\'yyyy/MM\\' }}
    • 0\" class=\"fcor-branco\">{{ offset + 1 }} - (limit + offset)) && (limit + offset != 0)\">{{ limit + offset }} {{ userCount }} {{ \\'of\\' | translate }} {{ userCount }} {{ \\'Paginate.LinesPerPage\\' | translate }}

    {{ \\'CartoesNaoEncontrados\\' | translate }}

    ');\n$templateCache.put('app/pages/dashboard/partials/welcome/index.html','
    ');\n$templateCache.put('app/pages/company-registry/modals/partials/alert.html','

    {{ \\'AvisoEmpresaCadastradaTitulo\\' | translate }}

    {{ \\'AvisoEmpresaCadastradaCorpo\\' | translate }}


    {{ \\'AvisoEmpresaCadastradaData\\' | translate }} {{ formatDate(dataAtualizacao) }}

    ');\n$templateCache.put('app/pages/company-registry/modals/partials/not-found.html','

    {{ \\'AvisoEmpresaNaoCadastradaTitulo\\' | translate }}

    {{ \\'AvisoEmpresaNaoCadastradaCorpo\\' | translate }}

    ');\n$templateCache.put('app/pages/invoice/partials/reseller/index.html','
    ');\n$templateCache.put('app/pages/invoice/partials/batch/index.html','
    ');\n$templateCache.put('app/pages/invoice/partials/enduser/index.html','
    {{ \\'DisclaimerEnduserInvoice\\' | translate }} {{ \\'DisclaimerEnduserInvoiceMsg\\' | translate }} {{ \\'ClickHere\\' | translate | lowercase }}.
    ');\n$templateCache.put('app/pages/invoice/tooltip/commission-status/tooltip.html','
    ');\n$templateCache.put('app/pages/invoice/tooltip/title-status/tooltip.html','
    ');\n$templateCache.put('app/pages/quote/partials/cala/index.html','

    {{\\'OrderData\\' | translate}}

    {{\\'ResellerData\\' | translate}}

    {{\\'EnderecoDeFaturamentoECobranca\\' | translate}}
    {{\\'EnderecoEntrega\\' | translate}}
    {{\\'EnderecoEntrega\\' | translate}}
    {{\\'ConsumidorFinal\\' | translate}}
    ');\n$templateCache.put('app/pages/quote/modals/partials/quote-add-documents.html','
    {{ \\'AP.AddDocumentsModal.Title\\' | translate }}
    {{ docType.slug | translate }}
    ');\n$templateCache.put('app/pages/quote/modals/partials/quote-expired.html','

    {{ \\'AP.ProposalExpiredModal.Text1\\' | translate }}

    {{ \\'AP.ProposalExpiredModal.Text2\\' | translate }}

    {{ \\'AP.ProposalExpiredModal.Text3\\' | translate }}

    {{ salesAgent.name }}

    {{ salesAgent.email }}

    ');\n$templateCache.put('app/pages/quote/modals/partials/quote-feedback-error.html','

    {{ \\'AP.FeedbackErrorModal.Text1\\' | translate }}

    ');\n$templateCache.put('app/pages/quote/modals/partials/quote-new-contact.html','
    {{ item.name }}
    ');\n$templateCache.put('app/pages/quote/modals/partials/quote-send-email.html','
    ');\n$templateCache.put('app/pages/quote/modals/partials/quote-terms-conditions-Argentina.html','

    T\\xC9RMINOS Y CONDICIONES DE LA PROPUESTA

    1) TIEMPO DE ENTREGA
    Los tiempos de entrega est\\xE1n sujetos a disponibilidad de inventario, y/o a fabricaci\\xF3n de los equipos no disponibles por parte del fabricante.

    2) IMPUESTOS
    Est\\xE1 cotizaci\\xF3n no incluye impuestos.

    3) CONDICIONES DE PAGO
    PRE-PAGADO - 100% ANTICIPO * Note: subject to credit analysis

    4) VALIDEZ
    7 d\\xEDas.

    5) INCOTERMS
    Los precios ofertados son DDP Argentina.

    6) COMENTARIOS

    Las Ordenes que, siguiendo normativa local, sean eventualmente facturadas en pesos, ser\\xE1n emitidas al tipo de cambio del d\\xEDa de su facturaci\\xF3n. Posteriormente se facturaran todas las diferencias de cambio (sean estas positivas y/o negativas) hasta el momento del efectivo cobro.


    7) T\\xC9RMINOS Y CONDICIONES GENERALES DE VENTA

    SSA > Cualquier orden generada a partir de esta propuesta / cotizaci\\xF3n est\\xE1 gobernada por los T\\xE9rminos y Condiciones Generales de Venta localizados en> T\\xE9rminos y Condiciones Generales de Venta \\u2013 TD SYNNEX, as\\xED como las Condiciones Particulares de la propuesta, las cuales predominan sobre los primeros en caso de conflicto.
    CCA > Any order generated from this proposal / quote is governed by the General Terms and Conditions of Sale located at General Terms and Conditions of Sale \\u2013 TD SYNNEX along with the Specific Conditions of the quote, which, in case of conflict, will prevail over the former.


    NOTA
    Forma de pago: de acuerdo al plazo otorgado y a las pol\\xEDticas establecidas con TD SYNNEX Argentina SRL.

    N\\xE3o h\\xE1 valor de pedido m\\xEDnimo para processamento
    ');\n$templateCache.put('app/pages/quote/modals/partials/quote-terms-conditions-Cala.html','

    T\\xC9RMINOS Y CONDICIONES DE LA PROPUESTA

    Purchases through our virtual stores will have the following terms and conditions:

    1) DELIVERY
    Delivery times are subject to TD SYNNEX CALA, Inc. product availability: local stock, vendor\\u2019s availability or production timeframe determined by the manufacturer.

    2) TAXES
    \\u2022 Prices quoted do not include state or local taxes, if you have any questions contact your Account Manager.
    \\u2022 Cargo transportation charges are not included, pricings are FOB Miami.
    \\u2022 Tax exceptions will depend on the end user\\u2019s location, for any concern please validate with your Account Manager.

    3) PAYMENT CONDITIONS Credit:
    The payment conditions will be agreed and communicated by TD SYNNEX CALA, Inc. finance department.
    Pre-Payment:
    Bank Name: HSBC Bank USA, N.A.
    Bank Address: 452 Fifth Avenue New York, New York 10018
    Routing / Wire Number: 021001088
    ABA / ACH Number: 021001088
    SWIFT: MRMDUS33
    Account Number: 480245428

    To confirm your purchase order, a payment must be sent to WCaLAAR@tdsynnex.com.

    NOTE
    For other payment terms including TDC (Credit Card) please contact your Account Manager.

    4) OFFER VALIDITY
    30 days.

    5) PURCHASE CONDITIONS
    Prices offered are expressed in US dollars.
    Quotes must be considered as a whole.
    Unit costs cannot be assumed if a change must be done to the configuration.
    6) T\\xC9RMINOS Y CONDICIONES GENERALES DE VENTA

    SSA > Cualquier orden generada a partir de esta propuesta / cotizaci\\xF3n est\\xE1 gobernada por los T\\xE9rminos y Condiciones Generales de Venta localizados en> T\\xE9rminos y Condiciones Generales de Venta \\u2013 TD SYNNEX, as\\xED como las Condiciones Particulares de la propuesta, las cuales predominan sobre los primeros en caso de conflicto.
    CCA > Any order generated from this proposal / quote is governed by the General Terms and Conditions of Sale located at General Terms and Conditions of Sale \\u2013 TD SYNNEX along with the Specific Conditions of the quote, which, in case of conflict, will prevail over the former.


    NOTE
    *** For new customers, the first 3 purchases must be prepaid. After receiving the financial documents, an analysis will be made by our credit analysts and the results will be properly communicated.

    N\\xE3o h\\xE1 valor de pedido m\\xEDnimo para processamento
    ');\n$templateCache.put('app/pages/quote/modals/partials/quote-terms-conditions-CCA-es.html','

    T\\xC9RMINOS Y CONDICIONES DE LA PROPUESTA

    Para las compras realizadas a trav\\xE9s de muestras tiendas se obedecer\\xE1n a los t\\xE9rminos y condiciones descritos a continuaci\\xF3n:

    1) TIEMPO DE ENTREGA
    Los tiempos de entrega est\\xE1n sujetos a disponibilidad de inventario de TD SYNNEX CALA, Inc., de f\\xE1brica y/o a fabricaci\\xF3n de los equipos no disponibles por parte del fabricante.

    2) IMPUESTOS

    \\u2022 Los precios cotizados no incluyen impuestos del estado o locales, ante cualquier duda contacte a su AM.
    \\u2022 No se encuentran incluidos los cargos de traslado de mercanc\\xEDa.
    \\u2022 Para aplicar a excepci\\xF3n de impuestos depender\\xE1 de la ubicaci\\xF3n del usuario final, puede validarlo con su Account Manager.

    3) CONDICIONES DE PAGO Cr\\xE9dito:
    Las condiciones de pago ser\\xE1n las acordadas con el \\xE1rea financiera de TD SYNNEX CALA, Inc.

    Pre-Pago:
    Bank Name: HSBC Bank USA, N.A.
    Bank Address: 452 Fifth Avenue New York, New York 10018
    Routing/Wire Number: 021001088
    ABA/ACH Number: 021001088
    SWIFT: MRMDUS33
    Account Number: 480245428

    Enviar el comprobante de pago a WCaLAAR@tdsynnex.com para confirmar su compra.

    NOTA
    Para otras condiciones de pago incluida TDC (Tarjeta de Cr\\xE9dito) por favor ponerse en contacto con su Account Manager.

    4) VALIDEZ
    30 d\\xEDas.

    5) CONDICIONES DE COMPRA:
    Los precios ofertados est\\xE1n expresados en D\\xF3lares americanos.
    Esta cotizaci\\xF3n debe ser considerada en su totalidad.
    Los valores no pueden tomarse de manera independiente.
    6) T\\xC9RMINOS Y CONDICIONES GENERALES DE VENTA

    SSA > Cualquier orden generada a partir de esta propuesta / cotizaci\\xF3n est\\xE1 gobernada por los T\\xE9rminos y Condiciones Generales de Venta localizados en> T\\xE9rminos y Condiciones Generales de Venta \\u2013 TD SYNNEX, as\\xED como las Condiciones Particulares de la propuesta, las cuales predominan sobre los primeros en caso de conflicto.
    CCA > Any order generated from this proposal / quote is governed by the General Terms and Conditions of Sale located at General Terms and Conditions of Sale \\u2013 TD SYNNEX along with the Specific Conditions of the quote, which, in case of conflict, will prevail over the former.


    NOTA
    ***Para clientes nuevos, las 3 primeras compras deben ser prepagadas. Despu\\xE9s de recibido los documentos financieros se har\\xE1 el an\\xE1lisis y el departamento financiero les comunicara su decisi\\xF3n.

    N\\xE3o h\\xE1 valor de pedido m\\xEDnimo para processamento
    ');\n$templateCache.put('app/pages/quote/modals/partials/quote-terms-conditions-Chile.html','

    T\\xC9RMINOS Y CONDICIONES DE LA PROPUESTA

    1) TIEMPO DE ENTREGA
    Los tiempos de entrega est\\xE1n sujetos a disponibilidad de inventario de TD SYNNEX Chile Limitada, de f\\xE1brica y/o a fabricaci\\xF3n de los equipos no disponibles por parte del fabricante.

    2) IMPUESTOS
    A los precios y totales se les debe sumar el IVA del 19%.

    3) CONDICIONES DE PAGO
    Las condiciones de pago ser\\xE1n las acordadas con el \\xE1rea financiera de TD SYNNEX Chile Limitada.

    4) VALIDEZ
    10 d\\xEDas.

    5) INCOTERMS
    • Los precios ofertados son DDP Chile.
    • Esta cotizaci\\xF3n debe ser considerada en su totalidad. Los valores no pueden tomarse de manera independiente.
    • La orden de compra por servicios profesionales de TD SYNNEX Chile Limitada o de la marca debe venir aparte que la de productos.
    6) T\\xC9RMINOS Y CONDICIONES GENERALES DE VENTA

    SSA > Cualquier orden generada a partir de esta propuesta / cotizaci\\xF3n est\\xE1 gobernada por los T\\xE9rminos y Condiciones Generales de Venta localizados en> T\\xE9rminos y Condiciones Generales de Venta \\u2013 TD SYNNEX, as\\xED como las Condiciones Particulares de la propuesta, las cuales predominan sobre los primeros en caso de conflicto.
    CCA > Any order generated from this proposal / quote is governed by the General Terms and Conditions of Sale located at General Terms and Conditions of Sale \\u2013 TD SYNNEX along with the Specific Conditions of the quote, which, in case of conflict, will prevail over the former.


    NOTA
    ***Para clientes nuevos, las 3 primeras compras deben ser prepagadas.

    Forma de pago: de acuerdo al plazo otorgado y a las pol\\xEDticas establecidas con TD SYNNEX Chile Limitada.

    N\\xE3o h\\xE1 valor de pedido m\\xEDnimo para processamento
    ');\n$templateCache.put('app/pages/quote/modals/partials/quote-terms-conditions-Colombia.html','

    T\\xC9RMINOS Y CONDICIONES DE LA PROPUESTA

    1) TIEMPO DE ENTREGA
    Los tiempos de entrega est\\xE1n sujetos a disponibilidad de inventario, y/o a fabricaci\\xF3n de los equipos no disponibles por parte del fabricante.

    2) IMPUESTOS
    A los precios y totales se les debe sumar el IVA del 19%.

    3) CONDICIONES DE PAGO
    Las condiciones de pago ser\\xE1n las acordadas con el \\xE1rea financiera de TD SYNNEX Colombia LTDA.

    4) VALIDEZ
    30 d\\xEDas.

    5) INCOTERMS
    Los precios ofertados son DDP Colombia.

    6) COMENTARIOS

    Este presupuesto se rige por los T\\xE9rminos y Condiciones de venta de TD SYNNEX Colombia LTDA, incluyendo todas las exclusiones de garant\\xEDa, renuncias y limitaciones de responsabilidad. Cualquier precio especial puede tener un plazo de vencimiento m\\xE1s corto. Si se hace referencia a un n\\xFAmero de SBA, el precio cotizado s\\xF3lo ser\\xE1 v\\xE1lido si se env\\xEDa la orden antes de la fecha de vencimento del SBA u 8 d\\xEDas antes del vencimiento de la oferta. Si el SBA se indica como \"Pendiente\", el precio cotizado est\\xE1 condicionado a la aprobaci\\xF3n del SBA por el fabricante. Tenga en cuenta que el fabricante puede requerir documentaci\\xF3n adicional para calificarse para el precio cotizado. Los precios y especificaciones est\\xE1n sujetos a cambios sin previo aviso. Ciertos art\\xEDculos pueden ser no retornables y no reembolsables.

    • No se aceptan cambios ni cancelaciones despu\\xE9s de recibida la orden de compra.
    • Precios sujetos a cambio cuando el fabricante modifique sus listas de precios.
    • Para procesar cualquier pedido necesitamos los siguientes datos del usuario final: Empresa, Nit, Persona de Contacto, Tel\\xE9fono, E-mail y Direcci\\xF3n.



    7) T\\xC9RMINOS Y CONDICIONES GENERALES DE VENTA

    SSA > Cualquier orden generada a partir de esta propuesta / cotizaci\\xF3n est\\xE1 gobernada por los T\\xE9rminos y Condiciones Generales de Venta localizados en> T\\xE9rminos y Condiciones Generales de Venta \\u2013 TD SYNNEX, as\\xED como las Condiciones Particulares de la propuesta, las cuales predominan sobre los primeros en caso de conflicto.
    CCA > Any order generated from this proposal / quote is governed by the General Terms and Conditions of Sale located at General Terms and Conditions of Sale \\u2013 TD SYNNEX along with the Specific Conditions of the quote, which, in case of conflict, will prevail over the former.


    NOTA
    ***Forma de pago: de acuerdo al plazo otorgado y a las pol\\xEDticas establecidas con TD SYNNEX Colombia LTDA.

    No se aceptan devoluciones de \\xF3rdenes de compra.

    N\\xE3o h\\xE1 valor de pedido m\\xEDnimo para processamento
    ');\n$templateCache.put('app/pages/quote/modals/partials/quote-terms-conditions-Equador.html','

    T\\xC9RMINOS Y CONDICIONES DE LA PROPUESTA

    1) TIEMPO DE ENTREGA
    Los tiempos de entrega est\\xE1n sujetos a disponibilidad de inventario, y/o a fabricaci\\xF3n de los equipos no disponibles por parte del fabricante.

    Tiempo de entrega estimado: HW - 6 semanas / SW - 1 a 2 semanas a partir de la aceptaci\\xF3n de la Orden de Compra.

    2) IMPUESTOS
    A los precios y totales se les debe sumar el IVA del 12%.

    3) CONDICIONES DE PAGO
    PRE-PAGADO - 100% ANTICIPO * Note: subject to credit analysis

    4) VALIDEZ
    30 d\\xEDas.

    5) INCOTERMS
    Los precios ofertados son DDP Quito.

    6) COMENTARIOS

    TD SYNNEX Ecuador Cia. Limitada:
    • No se aceptan cambios ni cancelaciones despu\\xE9s de recibida la orden de compra. • La presente cotizaci\\xF3n fue realizada con informaci\\xF3n suministrada directamente por el canal. TD SYNNEX Ecuador Cia. Limitada puede sugerir alternativas de dise\\xF1o, sin embargo, el canal ser\\xE1 el responsable de su revisi\\xF3n y aprobaci\\xF3n final • Para procesar cualquier pedido necesitamos los siguientes datos del usuario final: RUC, Raz\\xF3n Social de la Empresa, Persona de Contacto, Tel\\xE9fono, E-mail y Direcci\\xF3n. • Enviar las \\xF3rdenes de compra al correo comprasec@tdsynnex.com con copia a al remitente de esta cotizaci\\xF3n

    TD SYNNEX Ecuador Cia. Limitada:
    Este presupuesto se rige por los T\\xE9rminos y Condiciones de venta de Comstor, incluyendo todas las exclusiones de garant\\xEDa, renuncias y limitaciones de responsabilidad. El precio indicado es v\\xE1lido por 8 d\\xEDas. Cualquier precio especial puede tener un plazo de vencimiento m\\xE1s corto. Si se hace referencia a un n\\xFAmero de SBA, el precio cotizado s\\xF3lo ser\\xE1 v\\xE1lido si se env\\xEDa la orden antes de la fecha de vencimento del SBA, o de 8 d\\xEDas a partir de la cotizaci\\xF3n, lo que ocurra primero. Si el SBA se indica como \"Pendiente\", el precio cotizado est\\xE1 condicionado a la aprobaci\\xF3n del SBA por el fabricante. Tenga en cuenta que el fabricante puede requerir documentaci\\xF3n adicional para calificarse para el precio cotizado. Los precios y especificaciones est\\xE1n sujetos a cambios sin previo aviso. Ciertos art\\xEDculos pueden ser no retornables y no reembolsables.



    6) T\\xC9RMINOS Y CONDICIONES GENERALES DE VENTA

    SSA > Cualquier orden generada a partir de esta propuesta / cotizaci\\xF3n est\\xE1 gobernada por los T\\xE9rminos y Condiciones Generales de Venta localizados en> T\\xE9rminos y Condiciones Generales de Venta \\u2013 TD SYNNEX Ecuador Cia. Limitada, as\\xED como las Condiciones Particulares de la propuesta, las cuales predominan sobre los primeros en caso de conflicto.
    CCA > Any order generated from this proposal / quote is governed by the General Terms and Conditions of Sale located at General Terms and Conditions of Sale \\u2013 TD SYNNEX Ecuador Cia. Limitada along with the Specific Conditions of the quote, which, in case of conflict, will prevail over the former.


    N\\xE3o h\\xE1 valor de pedido m\\xEDnimo para processamento
    ');\n$templateCache.put('app/pages/quote/modals/partials/quote-terms-conditions-es.html','

    T\\xC9RMINOS Y CONDICIONES DE LA PROPUESTA

    Para las compras realizadas a trav\\xE9s de muestras tiendas se obedecer\\xE1n a los t\\xE9rminos y condiciones descritos a continuaci\\xF3n:

    1) TIEMPO DE ENTREGA
    Los tiempos de entrega est\\xE1n sujetos a disponibilidad de inventario de TD SYNNEX Westcon Comstor, de f\\xE1brica y/o a fabricaci\\xF3n de los equipos no disponibles por parte del fabricante.

    2) IMPUESTOS
    • Los precios cotizados no incluyen impuestos del estado o locales, ante cualquier duda contacte a su AM.
    • No se encuentran incluidos los cargos de traslado de mercanc\\xEDa.
    • Para aplicar a excepci\\xF3n de impuestos depender\\xE1 de la ubicaci\\xF3n del usuario final, puede validarlo con su Account Manager.

    3) CONDICIONES DE PAGO

    Cr\\xE9dito:
    Las condiciones de pago ser\\xE1n las acordadas con el \\xE1rea financiera de TD SYNNEX Westcon Comstor.

    Pre-Pago:
    Bank Name: HSBC Bank USA, N.A.
    Bank Address: 452 Fifth Avenue New York, New York 10018
    Routing/Wire Number: 021001088
    ABA/ACH Number: 021001088
    SWIFT: MRMDUS33
    Account Number: 480245428

    Enviar el comprobante de pago a WCaLAAR@westcon-la.com para confirmar su compra.

    NOTA
    Para otras condiciones de pago incluida TDC (Tarjeta de Cr\\xE9dito) por favor ponerse en contacto con su Account Manager.

    4) VALIDEZ DE LA OFERTA
    30 d\\xEDas.

    5) CONDICIONES DE COMPRA
    Los precios ofertados est\\xE1n expresados en D\\xF3lares americanos.Esta cotizaci\\xF3n debe ser considerada en su totalidad. Los valores no pueden tomarse de manera independiente.
    6) T\\xC9RMINOS Y CONDICIONES GENERALES DE VENTA

    SSA > Cualquier orden generada a partir de esta propuesta / cotizaci\\xF3n est\\xE1 gobernada por los T\\xE9rminos y Condiciones Generales de Venta localizados en> T\\xE9rminos y Condiciones Generales de Venta \\u2013 SYNNEX Westcon-Comstor, as\\xED como las Condiciones Particulares de la propuesta, las cuales predominan sobre los primeros en caso de conflicto.
    CCA > Any order generated from this proposal / quote is governed by the General Terms and Conditions of Sale located at General Terms and Conditions of Sale \\u2013 SYNNEX Westcon-Comstor along with the Specific Conditions of the quote, which, in case of conflict, will prevail over the former.


    NOTA
    ***Para clientes nuevos, las 3 primeras compras deben ser prepagadas. Despu\\xE9s de recibido los documentos financieros se har\\xE1 el an\\xE1lisis y el departamento financiero les comunicara su decisi\\xF3n.

    N\\xE3o h\\xE1 valor de pedido m\\xEDnimo para processamento
    ');\n$templateCache.put('app/pages/quote/modals/partials/quote-terms-conditions-peru.html','

    T\\xC9RMINOS Y CONDICIONES DE LA PROPUESTA

    Para las compras realizadas a trav\\xE9s de muestras tiendas se obedecer\\xE1n a los t\\xE9rminos y condiciones descritos a continuaci\\xF3n:

    1) TIEMPO DE ENTREGA
    Los tiempos de entrega est\\xE1n sujetos a disponibilidad de inventario, y/o a fabricaci\\xF3n de los equipos no disponibles por parte del fabricante.

    2) IMPUESTOS
    • A los precios y totales se les debe sumar el IGV del 18%.

    3) CONDICIONES DE PAGO


    Las condiciones de pago ser\\xE1n las acordadas con el \\xE1rea financiera de TD SYNNEX Peru S.A.C. SYNNEX
    4) VALIDEZ DE LA OFERTA
    30 d\\xEDas.

    5) INCOTERMS
    Los precios ofertados son DDP Per\\xFA.
    6) COMENTARIOS

    Este presupuesto se rige por los T\\xE9rminos y Condiciones de venta de TD SYNNEX, incluyendo todas las exclusiones de garant\\xEDa, renuncias y limitaciones de responsabilidad. Cualquier precio especial puede tener un plazo de vencimiento m\\xE1s corto. Si se hace referencia a un n\\xFAmero de SBA, el precio cotizado s\\xF3lo ser\\xE1 v\\xE1lido si se env\\xEDa la orden antes de la fecha de vencimento del SBA u 8 d\\xEDas antes del vencimiento de la oferta. Si el SBA se indica como \"Pendiente\", el precio cotizado est\\xE1 condicionado a la aprobaci\\xF3n del SBA por el fabricante. Tenga en cuenta que el fabricante puede requerir documentaci\\xF3n adicional para calificarse para el precio cotizado. Los precios y especificaciones est\\xE1n sujetos a cambios sin previo aviso. Ciertos art\\xEDculos pueden ser no retornables y no reembolsables.



    • No se aceptan cambios ni cancelaciones despu\\xE9s de recibida la orden de compra.
    • Precios sujetos a cambio cuando el fabricante modifique sus listas de precios.
    • Para procesar cualquier pedido necesitamos los siguientes datos del usuario final: Empresa, Nit, Persona de Contacto, Tel\\xE9fono, E-mail y Direcci\\xF3n.
    NOTA
    El pago se deber\\xE1 realizar en la moneda seg\\xFAn cotizaci\\xF3n emitida.

    7) T\\xC9RMINOS Y CONDICIONES GENERALES DE VENTA

    SSA > Cualquier orden generada a partir de esta propuesta / cotizaci\\xF3n est\\xE1 gobernada por los T\\xE9rminos y Condiciones Generales de Venta localizados en> T\\xE9rminos y Condiciones Generales de Venta \\u2013 SYNNEX, as\\xED como las Condiciones Particulares de la propuesta, las cuales predominan sobre los primeros en caso de conflicto.


    N\\xE3o h\\xE1 valor de pedido m\\xEDnimo para processamento
    ');\n$templateCache.put('app/pages/quote/modals/partials/quote-terms-conditions.html','

    TERMOS E CONDI\\xC7\\xD5ES DA PROPOSTA

    As compras efetuadas atrav\\xE9s do site obedecer\\xE3o aos termos e condi\\xE7\\xF5es abaixo.

    1) CONDI\\xC7\\xD5ES DE FATURAMENTO

    • Todos os valores est\\xE3o em d\\xF3lares americanos.
    • Os equipamentos ser\\xE3o faturados na data do envio.
    • O faturamento dos itens ser\\xE1 efetuado conforme a origem indicada na lista de Materiais e Servi\\xE7os contida no Carrinho de Compras.

    Esp\\xEDrito Santo
    Westcon Brasil Ltda
    CNPJ : 28.268.233/0007-84
    Av. Acesso Rodovi\\xE1rio S/N
    Qd 08 Mod M-01 Sl.02
    TIMS (Terminal InterModal de Serra) - Serra - ES
    CEP: 29161-376
    Tel: (27) 2122-7963

    Rio de Janeiro
    Westcon Brasil Ltda
    CNPJ : 28.268.233/0006-01
    Rua Victor Civita, 77 - Bloco 1 - sala 201, Rio de Janeiro - RJ, 1058
    Tel: +55-21-3590-6201, Fax: +55-21-3590-6212

    S\\xE3o Paulo WH
    Westcon Brasil Ltda
    CNPJ : 28.268.233/0008-65
    Rua Rishin Matsuda, 501 - Vila Santa Catarina 
    S\\xE3o Paulo - SP, CEP: 04.371-000
    Tel: +55-11-5186-4333, Fax: +55-11-5186-4330

    2) PEDIDO M\\xCDNIMO

    N\\xE3o h\\xE1 valor de pedido m\\xEDnimo para processamento.

    3) CONDI\\xC7\\xD5ES DE PAGAMENTO

    Ap\\xF3s a ordem de pedido feita pelo site da Comstor Express, nossos analistas entrar\\xE3o em contato para aprova\\xE7\\xE3o da proposta.

    1. PR\\xC9-PAGAMENTO atrav\\xE9s de boleto banc\\xE1rio.
    2. Faturamento a prazo, sujeito a an\\xE1lise de cr\\xE9dito.

    4) PREVIS\\xC3O DE ENTREGA


    A previs\\xE3o de faturamento \\xE9 uma estimativa baseada em dados hist\\xF3ricos, contada a partir da data de emiss\\xE3o da Ordem de Venda (OV) pela Comstor. A OV \\xE9 emitida somente ap\\xF3s an\\xE1lise financeira e confirma\\xE7\\xE3o de todos os dados do comprador. Eventuais e atrasos na fabrica\\xE7\\xE3o ou na disponibiliza\\xE7\\xE3o do material pelo fabricante poder\\xE3o afetar a previs\\xE3o de faturamento.
    5) T\\xC9RMINOS Y CONDICIONES GENERALES DE VENTA

    SSA > Cualquier orden generada a partir de esta propuesta / cotizaci\\xF3n est\\xE1 gobernada por los T\\xE9rminos y Condiciones Generales de Venta localizados en> T\\xE9rminos y Condiciones Generales de Venta \\u2013 SYNNEX Westcon-Comstor, as\\xED como las Condiciones Particulares de la propuesta, las cuales predominan sobre los primeros en caso de conflicto.
    CCA > Any order generated from this proposal / quote is governed by the General Terms and Conditions of Sale located at General Terms and Conditions of Sale \\u2013 SYNNEX Westcon-Comstor along with the Specific Conditions of the quote, which, in case of conflict, will prevail over the former.


     

    Prazo estimado para de entrega ap\\xF3s faturamentoDias \\xFAteis
    ES - Capital1
    RJ, MG, SP, ES, DF, PR, GO, RS - Capitais2
    SE, PA, MT, MS, SC, CE, PB, AL, RN, PE, MA, BA, PI - Capitais, Foz do Igua\\xE7u - PR, Ilh\\xE9us - BA, Joinville - SC, Londrina - PR, Navegantes - SC, Uberl\\xE2ndia - MG3
    RR, AM, AP, RO, AC - Capitais, Santar\\xE9m - PA, Imperatriz - MA, Marab\\xE1 - PA4
    Demais LocalidadesConsultar


    A Comstor n\\xE3o assumir\\xE1 nenhum tipo de penalidade no caso da impossibilidade de atendimento das previs\\xF5es de entrega inicialmente previstas. Consulte o prazo para demais cidades.



    5) GARANTIA

    A garantia \\xE9 de responsabilidade do fabricante. O prazo e processamento da garantia s\\xE3o estipulados pela pol\\xEDtica definida pelo fabricante para cada um dos seus produtos.

    6) PRE\\xC7OS E IMPOSTOS

    Os pre\\xE7os divulgados consideram a compra das quantidades totais descritas no pedido. Todos os impostos de responsabilidade da Comstor est\\xE3o inclusos nos valores apresentados.

    Os pre\\xE7os indicados poder\\xE3o sofrer altera\\xE7\\xF5es, mesmo depois de aceitos pelo cliente, devido a mudan\\xE7as de al\\xEDquotas de impostos incidentes, cria\\xE7\\xE3o de novos impostos ou mudan\\xE7a de lista de pre\\xE7os do fabricante, desde que devidamente comprovados.

    Devido \\xE0 constante mudan\\xE7a nas legisla\\xE7\\xF5es estaduais sobre incid\\xEAncia de Substitui\\xE7\\xE3o Tribut\\xE1ria de ICMS, com poss\\xEDveis acr\\xE9scimos de novas categorias de produtos e inclus\\xF5es de novas unidades da federa\\xE7\\xE3o e conv\\xEAnios, alertamos que a an\\xE1lise final da aplica\\xE7\\xE3o ou n\\xE3o desta regra tribut\\xE1ria \\xE9 de inteira responsabilidade da empresa substituta, ficando a Westcon Brasil Ltda. respons\\xE1vel apenas em prover, dentro dos seus melhores esfor\\xE7os, toda informa\\xE7\\xE3o necess\\xE1ria para essa an\\xE1lise. A Comstor n\\xE3o se responsabiliza por manter pre\\xE7os iguais em novos produtos que eventualmente substituam produtos descontinuados pelo fabricante, ficando a crit\\xE9rio da empresa compradora, o pedido de uma nova proposta com os produtos atualizados com seu pre\\xE7o de mercado.

    7) FRETE

    O frete \\xE9 gratuito para todo o Brasil nas compras realizadas pelo Comstor Express.

     

    8) INFORMA\\xC7\\xD5ES PARA RECEBIMENTO DA COMISS\\xC3O


      \\u25BA Dados para faturamento/RJ:

    WESTCON BRASIL LTDA
    CNPJ: 28.268.233/0006-01
    IE: 078.597.224
    Rua Victor Civita, 77 - Bloco 1 - sala 201, Rio de Janeiro - RJ \\u2013 CEP: 22775-044

    \\u25BA Natureza do Servi\\xE7o:

    - Comissionamento sobre venda, podendo variar de munic\\xEDpio para munic\\xEDpio, uns permitem que j\\xE1 tenham impresso na NF a Natureza: Presta\\xE7\\xE3o de servi\\xE7os mas, a descri\\xE7\\xE3o dos servi\\xE7os deve ser como indicado abaixo.

    \\u25BA Descri\\xE7\\xE3o do Servi\\xE7o:

    - Na descri\\xE7\\xE3o dos servi\\xE7os deve ser de Comissionamento sobre venda ou Intermedia\\xE7\\xE3o de Venda;
    - NF\\'s emitidas com outras descri\\xE7\\xF5es ser\\xE3o devolvidas.
    - Deve constar tamb\\xE9m na descri\\xE7\\xE3o dos servi\\xE7os o n\\xBA das NF\\'s de vendas (t\\xEDtulos) que geram essas comiss\\xF5es (no m\\xE1ximo 10 t\\xEDtulos por nota de comiss\\xE3o) e dados banc\\xE1rios para dep\\xF3sito.

    \\u25BA Descontos:

    - O servi\\xE7o de comiss\\xE3o \\xE9 citado no art. 651 do decreto 3000/99, portanto sujeito \\xE0 incid\\xEAncia de 1,5% referente ao Imposto de Renda na Fonte, que \\u201Ccomo exce\\xE7\\xE3o \\xE0 regra de reten\\xE7\\xE3o\\u201D dever\\xE1 ser recolhido pela pr\\xF3pria pessoa jur\\xEDdica benefici\\xE1ria (RIR/99).
    - O servi\\xE7o de comiss\\xE3o n\\xE3o est\\xE1 sujeito a reten\\xE7\\xE3o de 4,65% (PIS, COFINS e CSLL), porque tal servi\\xE7o n\\xE3o est\\xE1 inclu\\xEDdo na lista do art. 1\\xBA da MP 381/2003.
    - A MP s\\xF3 menciona os servi\\xE7os inclu\\xEDdos no art. 647 do decreto 3000/99.
    - Para empresas estabelecidas fora do Munic\\xEDpio do Rio de Janeiro haver\\xE1 tamb\\xE9m 5% de Reten\\xE7\\xE3o referente ao ISS.
    - Se a empresa for de SP e n\\xE3o tiver cadastro no munic\\xEDpio do RJ, a NF poder\\xE1 ser faturada para a filial SP, conforme dados abaixo.


    \\u25BA Dados para faturamento/SP:

    WESTCON BRASIL LTDA.
    CNPJ.: 28.268.233/0008-65 Rua Rishin Matsuda, 501 - Vila Santa Catarina S\\xE3o Paulo - SP, CEP: 04.371-000

    \\u25BA A Nota fiscal para recebimento da comiss\\xE3o deve ser enviada juntamente com essa planilha (caso haja) para:
    - A quita\\xE7\\xE3o da NF de comiss\\xE3o s\\xF3 se dar\\xE1 ap\\xF3s confirma\\xE7\\xE3o do pagamento da NF de Venda pelo Usu\\xE1rio Final;
    - NF recebida na semana (segunda-feira a quinta- feira at\\xE9 as 12 horas) o pagamento ser\\xE1 sempre na quarta-feira (da semana posterior) estando ela sem diverg\\xEAncia.
    - Favor n\\xE3o esquecer de mencionar no corpo da NF os dados banc\\xE1rios,
    - Assuntos referentes a comiss\\xE3o e emiss\\xE3o de NFe: comissaobr@tdsynnex.com

    \\u25BA Com rela\\xE7\\xE3o a comiss\\xE3o dispon\\xEDvel pode acessar os nossos portais Comstor Express ou MyComstor. Caso n\\xE3o tenha senha, por favor, entrar em contato com o respons\\xE1vel por seus processos de compra no nosso setor comercial.

    Por favor, enviar o PDF da Nfe para o e-mail: comissaobr@tdsynnex.com


    9) TERMOS E CONDI\\xC7\\xD5ES GERAIS DE VENDA

    Subentende-se que a lista de material contida no Carrinho de Compras foi validada tecnicamente pela empresa compradora, estando a Comstor isenta de responsabilidade sobre poss\\xEDveis erros de configura\\xE7\\xE3o.

    Conforme defini\\xE7\\xE3o do fabricante, itens sem custo associados a produtos configur\\xE1veis Cisco n\\xE3o devem ser cotados (e n\\xE3o s\\xE3o listados na Comstor Express). Estes itens s\\xE3o automaticamente inclu\\xEDdos no part number principal seguindo configura\\xE7\\xE3o padr\\xE3o para a regi\\xE3o determinada pela Cisco.

    As condi\\xE7\\xF5es de pagamento apresentadas est\\xE3o sujeitas a an\\xE1lise de cr\\xE9dito at\\xE9 o momento do faturamento. 

    N\\xE3o h\\xE1 valor de pedido m\\xEDnimo para processamento
    ');\n$templateCache.put('app/pages/quote/modals/partials/quote-type-documents.html','
    {{ \\'AP.TypeDocumentsModal.Title\\' | translate }}

    {{ \\'AP.TypeDocumentsModal.Text1\\' | translate }}

    {{ \\'AP.TypeDocumentsModal.Text2\\' | translate }}

    {{ \\'AP.TypeDocumentsModal.Text3\\' | translate }}

    ');\n$templateCache.put('app/pages/quote/modals/partials/quote-version.html','

    {{ \\'AP.ProposalVersionModal.Text1\\' | translate }} ({{ quote.dateQuote | date }})

    {{ quote.name }}

    {{ \\'Version\\' | translate }} {{ version }}


    {{ \\'AP.ProposalVersionModal.Text2\\' | translate }}

    {{ quote.name }}

    {{ \\'Version\\' | translate }} {{ quote.quoteVersion || \\'-\\' }}

    ');\n$templateCache.put('app/pages/quote/modals/partials/update-company.html','
    {{ item.name }}
    {{ item.name }}
    {{ item.name }}
    *
    {{ item.contact.name }}
    ');\n$templateCache.put('app/pages/quote/modals/partials/vrf-order.html','

    ');\n$templateCache.put('app/pages/reseller-order/components/partials/modal-comments.html','

    {{ \\'Obs\\' | translate }}

    {{ remark | translate }}

    ');\n$templateCache.put('app/pages/reseller-order/components/partials/order-filter.html','
    ');\n$templateCache.put('app/pages/reseller-order/components/partials/order-report-table-tbody.html','
    {{ order.orderCode }}
    {{ order.customerCode }}
    {{ order.endUserName }}{{ order.vendorName }}{{ order.partnumber }}

    {{order.description}}

    {{ order.partNumbersQuantity }}{{ order.statusReport205Text }}{{ formatDatePreview(order.featuringPreview) }}{{ formatDate(order.orderDateAccepted) }}{{ formatDate(order.expectedManufacturerExitDate) }}{{ formatDate(order.estimatedArrivalDate) }} -
    {{ \\'commingsoon\\' | translate }}
    ');\n$templateCache.put('app/pages/reseller-order/components/partials/order-report-table-thead.html','');\n$templateCache.put('app/pages/reseller-order/components/partials/order-tracker-table-tbody.html','
    {{ order.salesOrder }}
    {{ order.customerOrder }}
    {{ order.endUser }}{{ order.vendor }}{{ order.originPartnumber }}

    {{order.description}}

    {{ order.qtd }}{{ order.status | translate }}{{ formatDate(order.invoicePrevision, order.vendor) }}{{ formatDate(order.orderDateAccepted, order.vendor) }}{{ isEmpty(order.onHandRealDate) ? \\'DataEstimada\\' : \\'Real\\' | translate }}
    {{ formatDate(order.manufacturingFinish, order.vendor) }}
    {{ isEmpty(order.inCountryRealDate) ? \\'DataEstimada\\' : \\'Real\\' | translate }}
    {{ formatDate(order.arrivalForecast, order.vendor) }}
    {{ isEmpty(order.transitToStockRealDate) ? \\'DataEstimada\\' : \\'Real\\' | translate }}
    {{ formatDate(order.customsClearance, order.vendor) }}
    {{ formatUnknown(order.origin) }} 0\"> 0\">-
    {{ \\'commingsoon\\' | translate }}
    ');\n$templateCache.put('app/pages/reseller-order/components/partials/order-tracker-table-thead.html','');\n$templateCache.put('app/pages/reseller-order/partials/detail/index.html','

    01 {{ \\'GeneralInformationAboutTheOrder\\' | translate }}

    • {{ order.orderCode }} 0\">/ {{ order.orderCodeNext }} - {{ \\'Version\\' | translate }} {{ order.version }}

    • {{ order.customerCode || \\'-\\' }}

    • {{ \\'PedidoEmAnalise\\' | translate }} {{ \\'PreOrder\\' | translate }} {{ \\'PedidoCancelado\\' | translate }} {{ \\'PedidoEmBacklog\\' | translate }} {{ \\'PedidoFinalizado\\' | translate }}

    • {{ order.paymentCondition }}

    • {{order.billTo.address.uf}}

    • {{ order.region }}

    • {{ (order.ownConsumption ? \\'Sim\\' : \\'Nao\\') | translate }}

    • {{ (order.directBilling ? \\'Sim\\' : \\'Nao\\') | translate }}

    • {{ order.reseller.name }}

    • {{ order.reseller.tradingName || \\'-\\' }}

    • {{ order.reseller.cgc }}

    • {{ order.reseller.address.addressLine }}, {{ order.reseller.address.number }} - {{ order.reseller.address.neighborhood }} - {{ order.reseller.address.city }} / {{ order.reseller.address.uf }}

    • {{ order.endUser.name }}

    • {{ order.endUser.tradingName || \\'-\\' }}

    • {{ order.endUser.cgc }}

    • {{ order.endUser.address.addressLine }}, {{ order.endUser.address.number }} - {{ order.endUser.address.neighborhood }} - {{ order.endUser.address.city }} / {{ order.endUser.address.uf }}

    {{ \\'CarrierData\\' | translate }}{{ \\'CarrierData\\' | translate }}
    • {{ order.carrierName || \\'-\\' }}

    • {{ order.carrierTelephone || \\'-\\' }}

    {{ \\'BillingChargeAndDeliveryData\\' | translate }}{{ \\'BillingChargeAndDeliveryData\\' | translate }}
    {{ \\'Billing\\' | translate }}{{ \\'Charge\\' | translate }}{{ \\'Delivery\\' | translate }}
    {{ \\'Name\\' | translate }}{{ order.billTo.name }}{{ order.chargeTo.name }}{{ order.shipTo.name }}
    {{ \\'TradeName\\' | translate }}{{ order.billTo.tradingName }}{{ order.chargeTo.tradingName }}{{ order.shipTo.tradingName }}
    {{ \\'CGC\\' | translate }}{{ order.billTo.cgc }}{{ order.chargeTo.cgc }}{{ order.shipTo.cgc }}
    {{ \\'StateRegistration\\' | translate }}{{ order.billTo.stateRegistration }}{{ order.chargeTo.stateRegistration }}{{ order.shipTo.stateRegistration }}
    {{ \\'Address\\' | translate }}{{ order.billTo.address.addressLine }}, {{ order.billTo.address.number }} - {{ order.billTo.address.neighborhood }} - {{ order.billTo.address.city }} / {{ order.billTo.address.uf }}{{ order.chargeTo.address.addressLine }}, {{ order.chargeTo.address.number }} - {{ order.chargeTo.address.neighborhood }} - {{ order.chargeTo.address.city }} / {{ order.chargeTo.address.uf }}{{ order.shipTo.address.addressLine }}, {{ order.shipTo.address.number }} - {{ order.shipTo.address.neighborhood }} - {{ order.shipTo.address.city }} / {{ order.shipTo.address.uf }}

    02 {{ \\'OrderItems\\' | translate }}

    ');\n$templateCache.put('app/pages/reseller-order/modals/partials/last-mile.html',' 0\"> 0\">
    {{ \\'LastMile.Occurrence\\' | translate }}{{ \\'LastMile.EstimatedDate\\' | translate }}
    {{ \\'LastMile.Transit\\' | translate }}
    {{ occ.description }}{{ formatDate(occ.realDate || occ.estimatedDate) }}

    {{ \\'LastMile.NoOccurrencesFound\\' | translate }}

    ');\n$templateCache.put('app/pages/reseller-order/modals/partials/message-to-email.html','

    ');\n$templateCache.put('app/pages/proposal/components/partials/proposal-menu.html','');\n$templateCache.put('app/pages/proposal/components/partials/renewal-proposal-summary.html','
    {{ \\'ResumoPropostasRenovacao\\' | translate }}
    • {{ quarters[0].quarter }}{{ quarters[0].totalQuoteValue | currency:\\'$ \\' }}
    • {{ quarters[1].quarter }}{{ quarters[1].totalQuoteValue | currency:\\'$ \\' }}
    • {{ quarters[2].quarter }}{{ quarters[2].totalQuoteValue | currency:\\'$ \\' }}
    • {{ quarters[3].quarter }}{{ quarters[3].totalQuoteValue | currency:\\'$ \\' }}
    • {{ quarters[4].quarter }}{{ quarters[4].totalQuoteValue | currency:\\'$ \\' }}
    ');\n$templateCache.put('app/pages/reseller-order/partials/history/backlog-item.html','
    {{ \\'Vendor\\' | translate }}{{ \\'PartNumber\\' | translate }}{{ \\'Quantidade\\' | translate }}{{ \\'Status\\' | translate }}{{ \\'ManufacturingFinish\\' | translate }} {{ \\'EstoqueInternacional\\' | translate }}{{ \\'ArrivalForecast\\' | translate }}{{ \\'CustomsClearance\\' | translate }}{{ \\'PrevisaoDeFaturamento\\' | translate }}{{ \\'Origem\\' | translate }}{{ \\'Obs\\' | translate }}
    {{ item.vendor || item.vendorName}}{{ item.originPartnumber }}

    {{item.description.substring(0, 35)}}{{ item.description.length > 35 ? \\'...\\' : \\'\\' }}

    {{ item.qtd }}{{ item.status | translate }}{{ item.isManufacturingFinishEstimated ? \\'DataEstimadaTerminoFabricacao\\' : \\'DataRealTerminoFabricacao\\' | translate }} {{ \\'DataTerminoFabricacaoNaoInformada\\' | translate }}
    {{ formatDate(item.manufacturingFinish) }}

    {{ getLabel(item.isOnHandEstimated, isDelayed(item.onHand)) | translate }} item.onHand && !item.onHandRealDate && !item.delayReportedBy\" ng-click=\"report(item)\">
    {{ formatDate(item.onHand) }} -

    {{ getLabel(item.isArrivalForecastEstimated, isDelayed(item.arrivalForecast)) | translate }} item.arrivalForecast && !item.inCountryRealDate && !item.delayReportedBy\" ng-click=\"report(item)\">
    {{ formatDate(item.arrivalForecast) }} - N/A

    {{ getLabel(item.isCustomsClearanceEstimated, isDelayed(item.customsClearance)) | translate }} item.customsClearance && !item.transitToStockRealDate && !item.delayReportedBy\" ng-click=\"report(item)\">
    {{ formatDate(item.customsClearance) }} - N/A

    {{ formatDate(item.invoicePrevision) }} - {{ \\'AnnouncedAfterVendorConfirmation\\' | translate }}{{ formatUnknown(item.origin) }} 0\"> 0\">-
    ');\n$templateCache.put('app/pages/reseller-order/partials/history/delivery-item.html','
    {{ \\'Vendor\\' | translate }}{{ \\'LastMile.Invoice\\' | translate }}{{ \\'Partnumber\\' | translate }}{{ \\'Quantidade\\' | translate }}{{ \\'Status\\' | translate }}{{ \\'LastMilePickup\\' | translate }}{{ \\'LastMileDelivery\\' | translate }}
    {{ orderTracker.vendor }}{{ orderTracker.invoice }}-{{ orderTracker.series }}{{ orderTracker.originPartnumber }}

    {{orderTracker.description}}

    {{ orderTracker.qtd }}{{ orderTracker.status | translate }}{{ isEmpty(orderTracker.lastMilePickupRealDate) ? \\'DataEstimada\\' : \\'Real\\' | translate }}
    {{ formatDate(orderTracker.lastMilePickup) }}
    {{ isEmpty(orderTracker.lastMileDeliveryRealDate) ? \\'DataEstimada\\' : \\'Real\\' | translate }}
    {{ formatDate(orderTracker.lastMileDelivery) }}
    ');\n$templateCache.put('app/pages/reseller-order/partials/history/detail.html','
    • C\\xF3digo do Pedido: {{ header.orderCode }} / {{ header.orderCodeNext }}
    • Pedido Cliente: {{ header.customerCode }}
    • Fabricante: {{ header.vendorList.join(\\',\\') }}
    • Usu\\xE1rio Final: {{ header.endUser }} / {{ header.codEndUser }}
    • Valor do Pedido: {{ header.orderValueTotal | currency:\\'\\' }}

    total de itens: {{items.length}}

    • {{item.originPartnumber}}

      0\" title=\"clique aqui para ver as observa\\xE7\\xF5es\" role=\"button\" tabindex=\"0\">
      • Descri\\xE7\\xE3o: {{item.description}}
      • Quantidade: {{item.qtd}}
      • Recebemos Confirma\\xE7\\xE3o do Fabricante? Sim, {{formatDate(item.shippedRealDate, item.vendor)}} N\\xE3o
      • Em Estoque Internacional: {{formatDate(item.onHandDate, item.vendor)}} real estimada atrasada
      • Chegada no Pa\\xEDs: {{formatDate(item.inCountryDate, item.vendor)}} real estimada atrasada
      • Libera\\xE7\\xE3o da Alf\\xE2ndega: {{formatDate(item.transitToStockDate, item.vendor)}} real estimada atrasada
      • Dispon\\xEDvel para faturamento: {{formatDate(item.originalPrevisionDate, item.vendor)}} real estimada atrasada

      Anota\\xE7\\xF5es

      • {{remark}}
    ');\n$templateCache.put('app/pages/reseller-order/partials/history/index.html','

    {{ \\'MeusPedidos\\' | translate }}

    {{ \\'MeusPedidosSub\\' | translate }}

    {{ \\'ResellerOrderHistory.Warning\\' | translate}}

    {{ \\'De\\' | translate }}
    {{ \\'Ate\\' | translate }}
    {{ \\'De\\' | translate }}
    {{ \\'Ate\\' | translate }}
    {{ orderStatus.key | translate }}

    0\" class=\"table-responsive\">
    {{ \\'CodigoPedido\\' | translate }}
    {{ \\'PedidoCliente\\' | translate }}
    {{ \\'Vendors\\' | translate }} {{ \\'UsuarioFinal\\' | translate }} {{ \\'ValorPedido\\' | translate }} {{ \\'DataAceite\\' | translate }} {{ \\'PrevisaoDeFaturamento\\' | translate }}
    {{ FormatoData | translate }}
    {{ \\'Status\\' | translate }}
    {{ order.orderCode }} 0\" class=\"span-link\">/ {{ order.orderCodeNext }}
    {{ formatUnknown(order.customerCode) }}
    {{ order.vendorList[0] }}
    {{ order.endUser }}

    {{ order.codEndUser }}

    {{ order.orderValueTotal | currency:\\'\\' }}{{ formatDate(order.orderDateAccepted) }}
    {{ formatDate(order.billingForecastDate) }}

    {{ \\'BilledIn\\' | translate }}

    {{ formatDate(order.billingDate) }}

    {{ \\'LastMile.DeliveryIn\\' | translate }}

    {{ formatDate(order.deliveryDate) }}

    {{ \\'LastMile.ReturnedIn\\' | translate }}

    {{ formatDate(order.returnedDate) }}

    {{ (\\'Status.\\' + order.statusSLUG) | translate }}

    {{ \\'LastMile.ReceivedBy\\' | translate }}

    {{ order.receivedBy }}

    0\" class=\"tracking-ov-details\">
    {{ \\'Error.Order.EmptyOrdersList\\' | translate }}
    0\"> 0\"> 0\">
    {{ \\'Error.Order.EmptyOrdersList\\' | translate }}
    ');\n$templateCache.put('app/pages/reseller-order/partials/history/lastmile-item.html','
    {{ \\'Vendor\\' | translate }}{{ \\'LastMile.Invoice\\' | translate }}{{ \\'Partnumber\\' | translate }}{{ \\'Quantidade\\' | translate }}{{ \\'Status\\' | translate }}{{ \\'LastMileDelivery\\' | translate }}
    {{ FormatoData | translate }}
    {{ \\'LastMile.ReceivedBy\\' | translate }}
    {{ lastMile.vendor }}{{ lastMile.invoice }}-{{ lastMile.series }}{{ lastMile.sku }}

    {{lastMile.skuName}}

    {{ lastMile.quantity }}{{ lastMile.description }}{{ formatDate(lastMile.realDate) }}{{ lastMile.receivedBy || \\'N/A\\' }}
    ');\n$templateCache.put('app/pages/reseller-order/partials/license/index.html','

    {{ \\'DownloadLicense\\' | translate }}

    {{ \\'DownloadLicenseSub\\' | translate }}

    {{ \\'PopupEnabled\\' | translate }}

    {{ \\'HasCiscoSmartnetInit\\' | translate }} {{ \\'ClickHere\\' | translate | lowercase }}.

    {{ \\'HasCiscoSmartnetEnd\\' | translate }} {{ \\'Here\\' | translate | lowercase }}.


    0\" class=\"table-responsive\">
    {{ \\'OvWestcon\\' | translate }}{{ \\'PedidoCliente\\' | translate }}{{ \\'UsuarioFinal\\' | translate }}{{ \\'Fabricante\\' | translate }}{{ \\'ContractStartDate\\' | translate }}
    {{ FormatoData | translate }}
    {{ \\'ContractTerminationDate\\' | translate }}
    {{ FormatoData | translate }}
    {{ header.orderCode }} 0\" class=\"span-link\">/ {{ header.orderCodeNext }}{{ formatUnknown(header.customerCode) }}{{ formatUnknown(header.endUser) }}{{ formatUnknown(header.vendorCode) }}{{ formatDate(header.startDate) }}{{ formatDate(header.endDate) }}
    0\">
    {{ \\'PartNumber\\' | translate }}{{ \\'Quantidade\\' | translate }}{{ \\'SerialContract\\' | translate }}{{ \\'ContractStartDate\\' | translate }}{{ \\'ContractTerminationDate\\' | translate }}
    {{ formatUnknown(license.partnumber) }}{{ formatUnknown(license.quantity) }}{{ formatUnknown(license.licenseCode) }}{{ formatDate(license.startDate) }}{{ formatDate(license.endDate) }} 0\">
    {{ \\'downloadsDone\\' | translate }}
    • {{ log.userName }}
    • {{ formatDateTime(log.timeStamp) }}
    {{\\'lastDownloadMadeby\\' | translate }} {{license.logs[0].userName}}
    0\">{{ \\'noDownloadDoneYet\\' | translate }}
    {{ \\'ContractRemarks\\' | translate }}
    {{ header.contractRemarks }}
    • 0\" class=\"fcor-branco\">{{ offset + 1 }} - (limit + offset)) && (limit + offset != 0)\">{{ limit + offset }} {{ totalRows }} {{ \\'of\\' | translate }} {{ totalRows }} {{ \\'Paginate.LinesPerPage\\' | translate }}
    {{ \\'NoLicenseAvailableForDownload\\' | translate }}

    ');\n$templateCache.put('app/pages/reseller-order/partials/orders/index.html','

    {{\\'AcompanheOAndamentoDeSeusPedidos\\' | translate}}



    0\" class=\"table-responsive\">
    • 0\" class=\"fcor-branco\">{{ offset + 1 }} - (limit + offset)) && (limit + offset != 0)\">{{ limit + offset }} {{ orderCount }} {{ \\'of\\' | translate }} {{ orderCount }} {{ \\'Paginate.LinesPerPage\\' | translate }}
    {{\\'CodigoPedido\\' | translate}}
    {{\\'PedidoCliente\\' | translate}}
    {{\\'ClienteFinal\\' | translate}}{{\\'ValorPedido\\' | translate}} {{\\'DataDoPedido\\' | translate}}
    {{\\'DataAceite\\' | translate}}
    {{\\'PrevisaoFaturamento\\' | translate}} {{\\'PrevisaoEntrega\\' | translate}} {{\\'Fabricante\\' | translate}} {{ \\'ExternalTradeComments\\' | translate }}{{ \\'InvoiceRemarks\\' | translate }}{{\\'StatusPedido\\' | translate}}
    {{ order.orderCode }}
    {{ formatUnknown(order.customerCode) }}
    {{ order.endUserName }}{{ order.value | currency:\\'$ \\' }}{{ formatUnknown(order.orderDate) | date: \\'dd/MM/yyyy\\'}}
    {{ formatDateAccepted(order.orderDateAccepted) | translate }}
    {{ \\'BilledIn\\' | translate }}
    {{ formatUnknown(order.featuringDate) | date: \\'dd/MM/yyyy\\' }}
    {{ formatDeliveryDate(order.estimatedArrivalDate) | translate }}{{ order.vendorName.substring(0, order.vendorName.length -1) }} - -{{ getNameStatusOrder(order.statusCode, order.orderDateAccepted) | translate }}
    {{ \\'commingsoon\\' | translate }}
    • 0\" class=\"fcor-branco\">{{ offset + 1 }} - (limit + offset)) && (limit + offset != 0)\">{{ limit + offset }} {{ orderCount }} {{ \\'of\\' | translate }} {{ orderCount }} {{ \\'Paginate.LinesPerPage\\' | translate }}
    {{ \\'Error.Order.EmptyOrdersList\\' | translate }}

    {{ \\'Obs\\' | translate }}

    {{ modalComments }}

    ');\n$templateCache.put('app/pages/price-list/partials/lists/index.html','

    {{ \\'PriceLists\\' | translate }}

    {{ \\'DownloadPriceListUpdatedDaily\\' | translate }}

    {{ \\'ToAccessTheListOfOtherManufacturers\\' | translate }}
    {{ \\'IfYouDontRemember\\' | translate }}{{ \\'ContactUsHere\\' | translate }}

    {{ type.key | translate }}

    {{ \\'ListPriceTypeFirst\\' | translate }}
    {{ \\'ClickHere\\' | translate }} {{ \\'ListPriceTypeSecond\\' | translate }}

    ');\n$templateCache.put('app/pages/reseller-order/partials/report205/index.html','

    {{ \\'AcompanheOAndamentoDeSeusPedidos\\' | translate }}


    0\" class=\"table-responsive\">

    ');\n$templateCache.put('app/pages/online-stock/partials/stock/index.html','

    {{ \\'CheckStockPrice\\' | translate }}

    {{ \\'OnlineStock.StockPrice\\' | translate }}

    {{ \\'OnlineStock.NoPriceTax\\' | translate }}

    {{ item.name | translate }}
    {{ \\'BuscaSimples\\' | translate }}{{ \\'BuscaMultipla\\' | translate }}
    {{ \\'PartNumber\\' | translate }}{{ \\'Descricao\\' | translate }}
    {{ \\'ShowStockItemsOnly\\' | translate }}
    {{ \\'LimitTo\\' | translate }}{{limit}} {{ \\'Results\\' | translate }}
    0\">
    {{ \\'PartNumber\\' | translate }}{{ \\'Description\\' | translate }}{{ \\'Manufacturer\\' | translate }}{{ \\'Tipo\\' | translate }}{{ \\'MSRP\\' | translate }}{{ \\'Discount\\' | translate }}{{ \\'FAT\\' | translate }}{{ \\'Taxas\\' | translate }}{{ \\'UnitPrice\\' | translate }}{{ \\'AvailableStock\\' | translate }}{{ \\'LocalStock\\' | translate }}{{ \\'MiamiStock\\' | translate }}
    {{ item.partnumber }}{{ item.description }}{{ item.manufacturer }}{{ item.typeName | translate }}-{{ item.currency }} {{ item.priceGPL | currency:\\'\\' }}= item.priceResellerStd\">{{ ((1-(item.priceResellerStd/item.priceGPL))*100) | currency:\\'\\' }}%{{ ((1-(item.priceReseller/item.priceGPL))*100) | currency:\\'\\' }}%-{{ item.billingUF }}

    {{ item.ipi }}% IPI

    {{ item.icms }}% ICMS

    {{ item.iss }}% ISS

    {{ item.pisCofins * 100 }}% PIS/COFINS

    De:

    {{ item.currency }} {{ item.priceResellerStd | currency:\\'\\' }}

    Por:

    {{ item.currency }} {{ item.priceReseller | currency:\\'\\' }} *

    = item.priceResellerStd\">

    {{ item.currency }} {{ item.priceResellerStd | currency:\\'\\' }}

    {{ item.localStock || \\'-\\' }}{{ item.miamiStock || \\'-\\' }}

    * Valor v\\xE1lido apenas para novos pedidos. Para Renova\\xE7\\xE3o entre em contato com o seu Gerente de Contas.

    ');\n$templateCache.put('app/pages/reseller-order/partials/tracking/index.html','

    {{ \\'AcompanheOAndamentoDeSeusPedidos\\' | translate }}


    ');\n$templateCache.put('app/pages/auth/factories/partials/modal/multi-country.html','

    Multi-Country

    Customer ID{{ \\'Pais\\' | translate }}{{ \\'EconomicGroup\\' | translate }}
    {{ item.CustomerID }}{{ item.Descricao }}{{ item.NomeGrupo }}
    ');\n$templateCache.put('app/pages/company-registry/components/partials/modal-cuit/index.html','

    {{ \\'CUITRegistradoMyWestcon\\' | translate }}

    {{ \\'SePrecisaAtualizarEscolhaUmaDas\\' | translate }}
    • {{ \\'AtualizadoEm\\' | translate }}: {{emp.dataAtualizacao | date}}
    ');\n$templateCache.put('app/pages/company-registry/components/partials/modal-aviso-contato/index.html','

    {{ \\'AvisoContatoDaEmpresaTitulo\\' | translate }}

    {{ \\'AvisoContatoDaEmpresaCorpo\\' | translate }}

    ');\n$templateCache.put('app/pages/company-registry/components/partials/precadastro/captcha.html','

    ');\n$templateCache.put('app/pages/company-registry/components/partials/precadastro/index.html','








    ');\n$templateCache.put('app/pages/company-registry/components/partials/modal-sucesso/index.html','

    TD SYNNEX

    {{ \\'RegisterCompany.Success\\' | translate }}

    ');\n$templateCache.put('app/pages/company-registry/components/partials/topo/index.html','

    {{ \\'RegistreSeWestcon\\' | translate }}

    {{ \\'RegistreSeTexto.Part1\\' | translate }} {{ \\'RegistreSeTexto.Part2\\' | translate }}

    ');\n$templateCache.put('app/pages/company-registry/components/partials/modal-term/index.html','

    {{\\'TermsAndConditions\\' | translate}}

    {{\\'TermsAndContitions.tittle\\' | translate}}

    SSA > Cualquier orden generada a partir de esta propuesta / cotizaci\\xF3n est\\xE1 gobernada por los T\\xE9rminos y Condiciones Generales de Venta localizados en> T\\xE9rminos y Condiciones Generales de Venta - TD SYNNEX SSA, as\\xED como las Condiciones Particulares de la propuesta, las cuales predominan sobre los primeros en caso de conflicto.
    CCA > Any order generated from this proposal / quote is governed by the General Terms and Conditions of Sale located at Terms and Conditions of Sale - TD SYNNEX CCA along with the Specific Conditions of the quote, which, in case of conflict, will prevail over the former.

    ');\n$templateCache.put('app/pages/invoice/components/partials/batch/batch-filter.html','
    ');\n$templateCache.put('app/pages/invoice/components/partials/batch/batch-form.html','
    {{ \\'TotalCommissionsReleasedForBatchCreation\\' | translate }} {{ totalToMountBatch | currency: summary.currency }}
    ');\n$templateCache.put('app/pages/invoice/components/partials/batch/batch-table.html','
    {{ \\'NaoExistemTitulos\\' | translate }}
    0\">
    {{ \\'Batch\\' | translate }}{{ \\'BatchCreationDate\\' | translate }}{{ \\'LastPaymentDate\\' | translate }}{{ \\'CommissionsTotalValue\\' | translate }}{{ \\'CommissionBatchStatus\\' | translate }}
    \"btn-open\" \"btn-close\"{{ header.batch }}{{ header.batchCreationDate | date:\\'shortDate\\' : format : timezone }}{{ header.lastPaymentDate | date:\\'shortDate\\' : format : timezone }}-{{ header.commissionsTotalValue | currency:header.currency }}{{ header.batchStatus | translate }}
    0\" class=\"table-responsive\">
    {{ \\'OvWestcon\\' | translate }}
    {{ \\'PedidoCliente\\' | translate }}
    {{ \\'Titulo\\' | translate }} / {{ \\'Parcela\\' | translate }}{{ \\'NumeroComissao\\' | translate }}{{ \\'UsuarioFinal\\' | translate }}
    {{ \\'IdentificadorEmpresa\\' | translate }}
    {{ \\'CommissionsNFEStatus\\' | translate }}{{ \\'CommissionsPaymentStatus\\' | translate }}{{ \\'ValorTitulo\\' | translate }}{{ \\'Emissao\\' | translate }}{{ \\'Vencimento\\' | translate }}{{ \\'Comissao\\' | translate }}
    {{ batch.ovIntranet }} 0\" class=\"span-link\">/ {{ batch.ovNext }}
    {{ formatOV(batch.clientOrder) }}
    {{ batch.invoiceNumber }} / {{ formatParcel(batch.invoiceParcel) }}{{ batch.commissionNumber}}{{ batch.endCustomerName}}
    {{ batch.endCustomerId}}
    {{ batch.commissionsNFEStatus | translate }}{{ batch.commissionsPaymentStatus | translate }}{{ batch.totalInvoice | currency:batch.currency }}{{ batch.issueDate | date:\\'shortDate\\' : format : timezone}}{{ batch.invoiceMaxPaymentDate | date:\\'shortDate\\' : format : timezone}}{{ batch.commissionTotal | currency:batch.currency }}
    ');\n$templateCache.put('app/pages/invoice/components/partials/batch/create-batch-form.html','
    {{ \\'TotalCommissionsReleasedForBatchCreation\\' | translate }} {{ totalCommissionBatch | currency: summary.currency }}

    {{ \\'AttachElectronicInvoice\\' | translate }}

    {{ \\'KnowHow\\' | translate }} {{ \\'GenerateNFEWestcon\\' | translate }}

    {{ \\'AttachElectronicInvoice\\' | translate }}

    {{ \\'KnowHow\\' | translate }} {{ \\'GenerateNFEWestcon\\' | translate }}
    Comisiones por ventas grabadas {{ totalCommissionBatchWithTaxes | currency: summary.currency }}
    Comisiones por ventas exclu\\xEDdas {{ totalCommissionBatchNoTaxes | currency: summary.currency }}
    IVA 19% {{ totalCommissionBatchIVA | currency: summary.currency }}
    TOTAL: {{ totalCommissionBatch | currency: summary.currency }}
    ');\n$templateCache.put('app/pages/invoice/components/partials/batch/create-batch-table.html','
    {{ \\'NaoExistemTitulos\\' | translate }}
    0\">
    {{ \\'OvWestcon\\' | translate }}
    {{ \\'PedidoCliente\\' | translate }}
    {{ \\'Titulo\\' | translate }} / {{ \\'Parcela\\' | translate }} {{ \\'NumeroComissao\\' | translate }} {{ \\'UsuarioFinal\\' | translate }}
    {{ \\'IdentificadorEmpresa\\' | translate }}
    {{ \\'ValorTitulo\\' | translate }} {{ \\'Emissao\\' | translate }} {{ \\'Vencimento\\' | translate }} {{ \\'StatusTitulo\\' | translate }} {{ \\'ComissaoLiquida\\' | translate }} {{ \\'Comissao\\' | translate }} {{ \\'ComissaoEmDolar\\' | translate }} {{ \\'ComissaoEmMoedaLocal\\' | translate }} Comisi\\xF3n exento de IVA en moneda local Comisi\\xF3n con IVA en moneda local
    0\">{{ title.ovIntranet }} 0\" class=\"span-link\">/ {{ title.ovNext }}
    {{ formatOV(title.clientOrder) }}
    N/A
    N/A
    {{ title.invoiceNumber }} / {{ formatParcel(title.invoiceParcel) }}{{ title.commissionNumber}}{{ title.endCustomerName}}
    {{ title.endCustomerId}}
    {{ title.totalInvoice | currency:title.currency }}{{ title.issueDate | date:\\'shortDate\\' : format : timezone}}{{ title.invoiceMaxPaymentDate | date:\\'shortDate\\' : format : timezone}}{{ title.titleStatus | translate }}{{ title.commissionTotalUSD | currency:\\'$ \\'}} {{ title.commissionTotal | currency:title.currency+\\' \\'}}{{ (title.commissionTotalUSD * title.taxUSD) | currency:\\'$ \\'}}{{ title.comissionTotalNoTaxes | currency:title.currency+\\' \\'}}{{ title.comissionTotalWithTaxes | currency:title.currency+\\' \\'}} 0\">
    {{ \\'downloadsBankSlipDone\\' | translate }}
    • {{ log.userName }}
    • {{ formatDateTime(log.timeStamp) }}
    0\">
    {{ \\'noDownloadBankSlipDoneYet\\' | translate }}
    -
    ');\n$templateCache.put('app/pages/invoice/components/partials/batch/create-batch.html','');\n$templateCache.put('app/pages/company-registry/components/partials/rodape/index.html','
    {{ \\'DeclaroParaOsDevidosFinsQue\\' + (pais != \\'Brasil\\' ? (pais || \\'\\') : \\'\\') | translate }}
    ');\n$templateCache.put('app/pages/quote/partials/cala/address/billing-address.html','
    ');\n$templateCache.put('app/pages/quote/partials/cala/address/delivery-address.html','
    ');\n$templateCache.put('app/pages/quote/partials/cala/address/enduser-address.html','
    ');\n$templateCache.put('app/pages/invoice/components/partials/reseller/reseller-filter.html','
    {{ \\'De\\' | translate }}
    {{ \\'Ate\\' | translate }}
    {{ \\'De\\' | translate }}
    {{ \\'Ate\\' | translate }}
    ');\n$templateCache.put('app/pages/invoice/components/partials/reseller/reseller-table.html','
    0\" class=\"fcor-branco\" ng-click=\"onDownload(viewData.filtered)\">{{ \\'DownloadPlanilha\\' | translate }} {{\\'NaoExistemTitulos\\' | translate}}
    {{\\'OvWestcon\\' | translate}}
    {{\\'PedidoCliente\\' | translate}}
    {{\\'Titulo\\' | translate}} {{\\'Parcela\\' | translate}} {{\\'ClienteFinal\\' | translate}}
    {{\\'IdentificadorEmpresa\\' | translate}}
    {{\\'ValorTitulo\\' | translate}}
    (PESO)
    {{ \\'OpenTotal\\' | translate }} {{\\'Emissao\\' | translate}}
    {{ FormatoData | translate }}
    {{\\'Vencimento\\' | translate}}
    {{ FormatoData | translate }}
    {{\\'StatusTitulo\\' | translate}}
    {{ formatOV(invoice.ovIntranet) }} 0\" class=\"span-link\">/ {{ invoice.ovNext }}
    {{ formatOV(invoice.pedidoCliente) }}
    {{ invoice.ovIntranet }} 0\" class=\"span-link\">/ {{ invoice.ovNext }}
    {{ formatOV(invoice.pedidoCliente) }}
    {{invoice.invoiceNumberOnly}}{{invoice.invoiceParcel}}{{ formatOV(invoice.endCustomerName) }}
    {{ formatOV(invoice.endCustomerId) }}
    {{ invoice.titleNetValue | currency:invoice.currency }}{{ invoice.titleOpenValue | currency:invoice.currency }}{{ invoice.emissionDate | date:\\'shortDate\\' : format : timezone}}{{ verifyDate(invoice.invoiceMaxPaymentDate) | date:\\'shortDate\\' : format : timezone}}{{invoice.status | translate}} 0\">
    {{ \\'downloadsBankSlipDone\\' | translate }}
    • {{ log.userName }}
    • {{ formatDateTime(log.timeStamp) }}
    0\">
    {{ \\'noDownloadBankSlipDoneYet\\' | translate }}
    {{ \\'Boleto\\' | translate}} {{ \\'Boleto\\' | translate }}
    {{\\'NFS-E\\' | translate}}
    {{\\'NF-E\\' | translate}} {{\\'NF-E\\' | translate}}
    {{ \\'Consumption\\' | translate }} CSP
    ');\n$templateCache.put('app/pages/invoice/components/partials/enduser/enduser-filter.html','
    {{ statusNote.key | translate }}
    {{ statusCommission.key | translate }}
    ');\n$templateCache.put('app/pages/invoice/components/partials/enduser/enduser-form.html','
    {{ \\'TotalCommissionsReleasedForBatchCreation\\' | translate }} {{ summary.totalToMountBatch | currency: summary.currency }}
    {{ \\'TotalCommissionsReleasedForBatchCreationColombia\\' | translate }} {{ summary.totalToMountBatchNoTaxes | currency: summary.currency }} {{ \\'TotalCommissionsReleasedForBatchCreationColombia.IVA\\' | translate }} {{ summary.totalToMountBatchWithTaxes | currency: summary.currency }}
    ');\n$templateCache.put('app/pages/invoice/components/partials/enduser/enduser-summary.html','
    {{ \\'ResumoComissoes\\' | translate }}

    {{ \\'ConsultarPrazo\\' | translate }} {{ \\'EmContato\\' | translate }}

    {{ \\'TotalComissoes\\' | translate }}{{ summary.totalCommissions | currency: summary.currency }}

    • {{ \\'Pagas\\' | translate }}{{ summary.totalCommissionsPaid | currency: summary.currency }}
    • {{ \\'Canceladas\\' | translate }}{{ summary.totalCommissionsCanceled | currency: summary.currency }}
    • {{ \\'Pendentes\\' | translate }}{{ summary.totalCommissionsPending | currency: summary.currency }}
    • {{ \\'nota-fiscal-ja-recebida\\' | translate }}{{ summary.totalCommissionsInvoiceAlreadyReceived | currency: summary.currency }}
    • {{ \\'em-analise\\' | translate }}{{ summary.totalCommissionsAnalyzing | currency: summary.currency }}
    • {{ \\'Liberadas\\' | translate }}{{ summary.totalCommissionsReleased | currency: summary.currency }}
    ');\n$templateCache.put('app/pages/invoice/components/partials/enduser/enduser-table.html','
    {{ \\'NaoExistemTitulos\\' | translate }}
    0\">
    {{ \\'OvWestcon\\' | translate }}
    {{ \\'PedidoCliente\\' | translate }}
    {{ \\'Titulo\\' | translate }} / {{ \\'Parcela\\' | translate }} {{ \\'NumeroComissao\\' | translate }} {{ \\'UsuarioFinal\\' | translate }}
    {{ \\'IdentificadorEmpresa\\' | translate }}
    {{ \\'ValorTitulo\\' | translate }} {{ \\'Emissao\\' | translate }} {{ \\'Vencimento\\' | translate }} {{ \\'StatusTitulo\\' | translate }} {{ \\'ComissaoLiquida\\' | translate }} {{ \\'Comissao\\' | translate }} {{ \\'ComissaoEmDolar\\' | translate }} {{ \\'ComissaoEmMoedaLocal\\' | translate }} {{ \\'ComissaoSemIVA\\' | translate }} {{ \\'ComissaoComIVA\\' | translate }} {{ \\'ComissaoStatus\\' | translate }} {{ \\'CSPBillingCompetency\\' | translate }}
    0\">{{ title.ovIntranet }} 0\" class=\"span-link\">/ {{ title.ovNext }}
    {{ formatOV(title.clientOrder) }}
    N/A
    N/A
    {{ title.invoiceNumber }} / {{ formatParcel(title.invoiceParcel) }}{{ title.commissionNumber}}{{ title.endCustomerName}}
    {{ title.endCustomerId}}
    {{ title.totalInvoice | currency:title.currency }}{{ title.issueDate | date:\\'shortDate\\' : format : timezone}}{{ title.invoiceMaxPaymentDate | date:\\'shortDate\\' : format : timezone}}{{ title.titleStatus | translate }}{{ title.commissionTotalUSD | currency:\\'$ \\'}} {{ title.commissionTotal | currency:title.currency+\\' \\'}}{{ (title.commissionTotalUSD * title.taxUSD) | currency:\\'$ \\'}}{{ title.comissionTotalNoTaxes | currency:title.currency+\\' \\'}}{{ title.comissionTotalWithTaxes | currency:title.currency+\\' \\'}}{{ title.commissionStatus | translate }}{{ title.cspBillingCompetency }} 0\">
    {{ \\'downloadsBankSlipDone\\' | translate }}
    • {{ log.userName }}
    • {{ formatDateTime(log.timeStamp) }}
    0\">
    {{ \\'noDownloadBankSlipDoneYet\\' | translate }}
    -
    ');\n$templateCache.put('app/pages/invoice/components/partials/enduser/enduser.html','');\n$templateCache.put('app/pages/quote/partials/cala/item/items.html','

    02 {{ \\'AP.OrderItems.Title\\' | translate }}

    {{ option.name }} ({{ (option.isNational ? \\'AP.OrderItems.DomesticProducts\\' : \\'AP.OrderItems.ImportedProducts\\') | translate }})
    {{ \\'Product\\' | translate }}
    {{ \\'AP.OrderItems.Description\\' | translate }}
    {{ \\'AP.OrderItems.Type\\' | translate }}{{ \\'AP.OrderItems.UnitPrice\\' | translate }}{{ \\'Quantidade\\' | translate }}Fat{{ \\'AP.OrderItems.Fees\\' | translate }}{{ \\'Subtotal\\' | translate }}{{ \\'AP.OrderItems.Comments\\' | translate }}
    VRF
    {{ item.productFamilyName }}

    {{ item.sku }}

    (ST) {{ \\'AP.OrderItems.TaxSubstitution\\' | translate }}

    {{ item.name }}

    {{ \\'AP.OrderItems.Hardware\\' | translate }} {{ \\'AP.OrderItems.Consumption\\' | translate }} {{ \\'AP.OrderItems.Service\\' | translate }} {{ \\'AP.OrderItems.FixedAsset\\' | translate }} {{ \\'AP.OrderItems.Software\\' | translate }} {{ \\'AP.OrderItems.CashierSoftware\\' | translate }}{{ (!option.isNational ? item.salesPrice : item.nationalSalesPrice) | currency:option.currency+\\' \\' }}{{ item.qty }}{{ item.stateAbbreviation }}

    {{ item.ipi }}% IPI

    {{ item.icms }}% ICMS

    {{ item.taxISS }}% ISS

    {{ item.taxPisCofins * 100 }}% PIS/COFINS

    {{ (option.isNational ? item.nationalSubTotal : item.subTotal) | currency:option.currency+\\' \\' }} {{\\'Ver\\' | translate}}

    {{ \\'AP.OrderItems.OptionTotalWithTax\\' | translate }} {{ (!option.isNational ? option.summaryTotalValue : option.nationalTotalWithTaxes) | currency:option.currency+\\' \\' }}

    {{ \\'AP.OrderItems.TotalWithoutTax\\' | translate }} {{ (!option.isNational ? option.summaryTotalWithoutTaxes : option.nationalTotalWithoutTaxes) | currency:option.currency+\\' \\' }}

    (ST): {{ \\'AP.OrderItems.TaxSubstitution\\' | translate }}
    ');\n$templateCache.put('app/pages/quote/partials/cala/reseller/order.html','

    {{ quote.name }} - {{ \\'Version\\' | translate }}: {{ quote.quoteVersion || 0 }}

    {{ quote.salesCountryGroup.aliasDataAcquisition || \\'-\\' }}

    {{ quote.paymentTermsDescription || \\'-\\' }}

    {{\\'Tooltip.Reseller.Defined.Condition\\' | translate}}

    {{\\'Tooltip.Reseller.New.Condition\\' | translate}}

    • {{\\'Tooltip.Reseller.Financial.Validation\\' | translate}}

    {{ quote.isInternalUse ? \\'Sim\\' : \\'No\\' | translate }}

    {{ quote.isDirectInvoice ? \\'Sim\\' : \\'No\\' | translate }}

    ');\n$templateCache.put('app/pages/quote/partials/cala/reseller/reseller.html','

    {{ quote.reseller.name || \\'-\\' }}

    {{ quote.reseller.tradeName || \\'-\\' }}

    {{ quote.reseller.taxId || \\'-\\' }}

    {{ quote.reseller.addresses[0].address }}, {{ quote.reseller.addresses[0].number }} - {{ quote.reseller.addresses[0].area }} - {{ quote.reseller.addresses[0].city }}

    ');\n$templateCache.put('app/pages/reseller-order/partials/detail/item/direct-billing.html','
    {{ \\'Partnumber\\' | translate }} /
    {{ \\'Manufacturer\\' | translate }}
    {{ \\'Qty\\' | translate }}
    {{ \\'UnitPrice\\' | translate }}
    {{ \\'SubtotalWithouComission\\' | translate }}
    {{ \\'SubtotalBilledEnduser\\' | translate }}
    {{ \\'GrossComission\\' | translate }}
    IPI
    Difal
    ICMS
    ISS
    PIS/COFINS
    MVA/ST
    {{ \\'NetComission\\' | translate }}
    {{ \\'DeliveryForecast\\' | translate }}
    ({{ \\'WorkingDays\\' | translate }})
    {{ partnumber.taxes.codParte }}
    {{ partnumber.item.vendorName }}
    {{ partnumber.taxes.quantidade ? partnumber.taxes.quantidade : partnumber.item.quantity }}{{ partnumber.taxes.valorUnitario ? partnumber.taxes.valorUnitario : 0 | currency:\\'R$ \\' }}
    {{ \\'Rates\\' | translate }}{{ partnumber.taxes.aliquotaIPI }}% IPI, {{ partnumber.taxes.aliquotaICMS }}% ICMS, {{ partnumber.taxes.aliquotaISS }}% ISS, {{ partnumber.taxes.aliquotaPIS + partnumber.taxes.aliquotaCOFINS }}% PIS/COFINS, {{ partnumber.taxes.mvaICMSST }}% MVA/ST
    {{ partnumber.taxes.valorRevenda ? partnumber.taxes.valorRevenda : 0 | currency:\\'R$ \\' }}{{ partnumber.taxes.valorUsuarioFinal ? partnumber.taxes.valorUsuarioFinal : 0 | currency:\\'R$ \\' }}{{ partnumber.taxes.valorComissaoBruta ? partnumber.taxes.valorComissaoBruta : 0 | currency:\\'R$ \\' }}{{ partnumber.taxes.ipi ? partnumber.taxes.ipi : 0 | currency:\\'R$ \\' }}
    {{ partnumber.taxes.aliquotaIPI ? partnumber.taxes.aliquotaIPI : 0 }} %
    {{ partnumber.taxes.icmsDifal ? partnumber.taxes.icmsDifal : 0 | currency:\\'R$ \\' }}{{ partnumber.taxes.icms ? partnumber.taxes.icms : 0 | currency:\\'R$ \\'}}
    {{ partnumber.taxes.aliquotaICMS ? partnumber.taxes.aliquotaICMS : 0 }} %
    {{ partnumber.taxes.iss ? partnumber.taxes.iss : 0 | currency:\\'R$ \\'}}
    {{ partnumber.taxes.aliquotaISS ? partnumber.taxes.aliquotaISS : 0 }} %
    {{ partnumber.taxes ? partnumber.taxes.pis + partnumber.taxes.cofins : 0 | currency:\\'R$ \\' }}
    {{ partnumber.taxes ? partnumber.taxes.aliquotaPIS + partnumber.taxes.aliquotaCOFINS : 0 }} %
    {{ partnumber.taxes.icmsst ? partnumber.taxes.icmsst : 0 | currency:\\'R$ \\'}}
    {{ partnumber.taxes.mvaICMSST ? partnumber.taxes.mvaICMSST : 0 }} %
    {{ partnumber.taxes.comissoLiquida ? partnumber.taxes.comissoLiquida : 0 | currency:\\'R$ \\' }}{{ partnumber.item.deliveryForecast }}
    {{ \\'Total\\' | translate }}{{ order.value | currency:\\'R$ \\' }}{{ order.netComission | currency:\\'R$ \\' }}
    ');\n$templateCache.put('app/pages/reseller-order/partials/detail/item/reseller-billing.html','
    {{ \\'PartNumber\\' | translate }} /
    {{ \\'Manufacturer\\' | translate }}
    {{ \\'Qty\\' | translate }}
    {{ \\'UnitPrice\\' | translate }}
    {{ \\'Subtotal\\' | translate }}
    {{ \\'DeliveryForecast\\' | translate }}
    ({{ \\'WorkingDays\\' | translate }})
    {{ partnumber.item.codPart }}
    {{ partnumber.item.vendorName }}
    {{ partnumber.item.quantity }}{{ partnumber.item.price | currency:\\'$ \\' }}{{ \\'DetailResellerBilling\\' | translate }}{{ partnumber.item.quantity * partnumber.item.price | currency:\\'$ \\' }}{{ partnumber.item.deliveryForecast }}
    {{ \\'Total\\' | translate }}{{ order.value | currency:\\'$ \\' }}
    ');\n$templateCache.put('app/pages/company-registry/components/partials/modal-error/index.html','

    TD SYNNEX

    {{ \\'RegisterCompany.Error\\' | translate }}

    ');\n$templateCache.put('app/pages/quote/partials/cala/vrf/vrf.html','

    {{\\'VRF.Title\\' | translate}}

    {{vrf.manufacturer}}

    ');\n$templateCache.put('app/pages/reseller-order/partials/detail/title/direct-billing-imported-items.html','
    {{\\'Titulo\\' | translate}} /
    {{\\'Parcela\\' | translate}}
    {{\\'Emissao\\' | translate}} {{\\'Vencimento\\' | translate}} {{\\'StatusTitulo\\' | translate}} {{\\'ValorTitulo\\' | translate}}
    {{ \\'GrossComission\\' | translate }}
    IPI
    ICMS
    ISS
    {{ \\'NetComission\\' | translate }}
    {{invoice.invoiceNumberOnly}} {{invoice.invoiceParcel}}{{ invoice.emissionDate | date:\\'shortDate\\' : format : timezone}}{{ invoice.invoiceMaxPaymentDate | date:\\'shortDate\\' : format : timezone}}{{invoice.status | translate}} {{invoice.status | translate}} {{\\'NF-E\\' | translate}} {{\\'NF-E\\' | translate}}{{invoice.titleNetValue | currency:\\'$ \\' }}{{item.commission}}{{item.ipi}}{{item.icms}}{{item.iss}}{{item.comission - (item.ipi + item.icms + item.iss)}}{{(item.comission - (item.ipi + item.icms + item.iss))/dolar}}
    {{ \\'Dolar\\' | translate}} {{ dolar | currency:\\'$ \\' }}
    TOTAL$ 8.000,00
    ');\n$templateCache.put('app/pages/reseller-order/partials/detail/title/direct-billing-national-items.html','
    {{\\'Titulo\\' | translate}} /
    {{\\'Parcela\\' | translate}}
    {{\\'Emissao\\' | translate}} {{\\'Vencimento\\' | translate}} {{\\'StatusTitulo\\' | translate}} {{\\'ValorTitulo\\' | translate}}
    {{ \\'GrossComission\\' | translate }}
    IPI
    ICMS
    ISS
    {{ \\'NetComission\\' | translate }}
    {{invoice.invoiceNumberOnly}} {{invoice.invoiceParcel}}{{ invoice.emissionDate | date:\\'shortDate\\' : format : timezone}}{{ invoice.invoiceMaxPaymentDate | date:\\'shortDate\\' : format : timezone}}{{invoice.status | translate}} {{invoice.status | translate}} {{\\'NF-E\\' | translate}} {{\\'NF-E\\' | translate}}{{invoice.titleNetValue | currency:\\'$ \\' }}{{item.commission}}{{item.ipi}}{{item.icms}}{{item.iss}}{{item.comission - (item.ipi + item.icms + item.iss)}}
    TOTAL$ 8.000,00
    ');\n$templateCache.put('app/pages/reseller-order/partials/detail/title/reseller-billing-imported-items.html','
    {{\\'Titulo\\' | translate}} /
    {{\\'Parcela\\' | translate}}
    {{\\'Emissao\\' | translate}} {{\\'Vencimento\\' | translate}} {{\\'StatusTitulo\\' | translate}} {{\\'ValorTitulo\\' | translate}}
    {{invoice.invoiceNumberOnly}} {{invoice.invoiceParcel}}{{ invoice.emissionDate | date:\\'shortDate\\' : format : timezone}}{{ invoice.invoiceMaxPaymentDate | date:\\'shortDate\\' : format : timezone}}{{invoice.status | translate}} {{invoice.status | translate}} {{\\'NF-E\\' | translate}} {{\\'NF-E\\' | translate}}{{invoice.titleNetValue | currency:\\'$ \\' }}{{(item.comission - (item.ipi + item.icms + item.iss))}}{{(item.comission - (item.ipi + item.icms + item.iss))/dolar}}
    {{ \\'Dolar\\' | translate}} {{ dolar | currency:\\'$ \\' }}
    TOTAL$ 8.000,00{{(item.comission - (item.ipi + item.icms + item.iss))/dolar}}
    {{ \\'Dolar\\' | translate}} {{ dolar | currency:\\'$ \\' }}
    ');\n$templateCache.put('app/pages/reseller-order/partials/detail/title/reseller-billing-national-items.html','
    {{\\'Titulo\\' | translate}} /
    {{\\'Parcela\\' | translate}}
    {{\\'Emissao\\' | translate}} {{\\'Vencimento\\' | translate}} {{\\'StatusTitulo\\' | translate}} {{\\'ValorTitulo\\' | translate}}
    {{invoice.invoiceNumberOnly}} {{invoice.invoiceParcel}}{{ invoice.emissionDate | date:\\'shortDate\\' : format : timezone}}{{ invoice.invoiceMaxPaymentDate | date:\\'shortDate\\' : format : timezone}}{{invoice.status | translate}} {{invoice.status | translate}} {{\\'NF-E\\' | translate}} {{\\'NF-E\\' | translate}}{{invoice.titleNetValue | currency:\\'$ \\' }}{{(item.comission - (item.ipi + item.icms + item.iss))}}
    TOTAL$ 8.000,00
    ');\n$templateCache.put('app/pages/rma/components/partials/faulty-product/index.html','
    {{ \\'rma.OccurrenceText\\' | translate }}
    ');\n$templateCache.put('app/pages/rma/components/partials/defective-product/index.html','
    {{ \\'rma.OccurrenceText\\' | translate }}
    ');\n$templateCache.put('app/pages/rma/components/partials/bill-again/index.html','
    ');\n$templateCache.put('app/pages/rma/components/partials/return-of-purchase/index.html','
    {{ \\'rma.OccurrenceText\\' | translate }}
    ');\n$templateCache.put('app/pages/rma/components/partials/missing-product/index.html','
    {{ \\'rma.OccurrenceText\\' | translate }}
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/additional-info/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/cnpj/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/cadastro-acionista/index.html','
    {{ \\'Register.Shareholders.Label\\' | translate }}
    0\" ng-repeat=\"share in valueShareholdersQty track by $index\">

    {{ \\'Shareholder \\' + ($index + 1) }}

    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/comissionamento/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/condicao-pagamento/index.html','
    {{ item.name }}
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/condicao-pagamento-argentina/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/condicao-pagamento-cala/index.html','

    *{{ \\'CondicionPago.Remark\\' | translate }}

    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/condicao-pagamento-arquivo/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/condicao-pagamento-chile/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/conta-bancaria/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/contatos-col-eq/index.html','');\n$templateCache.put('app/pages/company-registry/components/partials/fields/contatos/index.html','

    {{ \\'UtilizarOsDadosDesseContatoParaOsDemaisAbaixo\\' | translate }}

    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/cuit/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/contribuinte-icms/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/dnb/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/email-representant/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/inscricao-municipal/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/inscricao-estadual/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/intranet-type/index.html','

    {{ \\'DadosEmpresa\\' | translate }}

    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/linha-interesse/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/line-interest/index.html','
    MicrosoftCloudCISCO{{\\'All\\' | translate}}{{\\'All\\' | translate}}IBMFortinetCheckpointF5SymantecVeeamCitrixPalo Alto{{\\'Outros\\' | translate}}
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/line-interest-col-eq/index.html','
    CloudCiscoMultimarcaServicios Profesionales
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/name-representant/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/nome-fantasia/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/prazo-nfe/index.html','

    {{ \\'InformacoesFinanceiras\\' | translate }}

    * {{ \\'PossuiDataLimiteParaEmissaoDeNFE\\' | translate }}

    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/razao-social/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/quantidade-solicitada-usd/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/sales-tax-exempt/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/possui-cnpj-cadastrado/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/rfc/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/segmento-empresa/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/setor/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/simples-nacional/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/suporta-retencao/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/tax-id/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/tipo-cliente/index.html','
    {{ item.name }}
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/tipo-empresa/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/vendedor-westcon/index.html','
    {{item.name}}
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/web-site/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/precadastro/countries/argentina.html','

    {{\\'TipoDeCadastro\\' | translate}}

    CUIT Inv\\xE1lido.
    ');\n$templateCache.put('app/pages/company-registry/components/partials/precadastro/countries/brasil.html','

    {{\\'TipoDeCadastro\\' | translate}}

    CNPJ Inv\\xE1lido.
    ');\n$templateCache.put('app/pages/company-registry/components/partials/precadastro/countries/cala.html','
    {{ country.name }}

    {{\\'TipoDeCadastro\\' | translate}}

    ');\n$templateCache.put('app/pages/company-registry/components/partials/precadastro/countries/chile.html','

    {{\\'TipoDeCadastro\\' | translate}}

    ');\n$templateCache.put('app/pages/company-registry/components/partials/precadastro/countries/colombia.html','

    {{\\'TipoDeCadastro\\' | translate}}

    ');\n$templateCache.put('app/pages/company-registry/components/partials/precadastro/countries/equador.html','

    {{\\'TipoDeCadastro\\' | translate}}

    ');\n$templateCache.put('app/pages/company-registry/components/partials/precadastro/countries/mexico.html','

    {{\\'TipoDeCadastro\\' | translate}}

    N\\xFAmero de RFC Inv\\xE1lido.
    ');\n$templateCache.put('app/pages/company-registry/components/partials/precadastro/countries/peru.html','

    {{\\'TipoDeCadastro\\' | translate}}

    ');\n$templateCache.put('app/pages/rma/components/partials/buttons/clear-attachments/index.html','

    {{totalSizeFiles}}MB / {{limitSize}}MB

    ');\n$templateCache.put('app/pages/rma/components/partials/inputs/part-number/index.html','
    ');\n$templateCache.put('app/pages/rma/components/partials/inputs/additional-info/index.html','
    ');\n$templateCache.put('app/pages/rma/components/partials/inputs/defect-found/index.html','
    ');\n$templateCache.put('app/pages/rma/components/partials/inputs/return-reason/index.html','
    ');\n$templateCache.put('app/pages/rma/components/partials/inputs/purchase-invoice/index.html','
    ');\n$templateCache.put('app/pages/rma/components/partials/inputs/rma-quantity/index.html','
    ');\n$templateCache.put('app/pages/rma/components/partials/inputs/serial-number/index.html','
    ');\n$templateCache.put('app/pages/rma/components/partials/inputs/status-text/index.html','
    ');\n$templateCache.put('app/pages/rma/components/partials/inputs/tests-already-performed/index.html','
    ');\n$templateCache.put('app/pages/rma/components/partials/grids/attachment-grid/index.html','
    {{ \\'rma.AttachmentInformationSub\\' | translate }}
    ');\n$templateCache.put('app/pages/rma/components/partials/grids/product-grid-defective/index.html','
    0\">
    {{ \\'PartNumber\\' | translate }}{{ \\'SerialNumber\\' | translate }}{{ \\'DefectFound\\' | translate }}{{ \\'TestsAlreadyPerformed\\' | translate }}{{ \\'Remove\\' | translate }}
    {{ product.partNumber }}{{ product.serialNumber }}{{ product.defectFound }}{{ product.testsAlreadyPerformed }}
    ');\n$templateCache.put('app/pages/rma/components/partials/grids/product-grid-faulty/index.html','
    0\">
    {{ \\'PartNumber\\' | translate }}{{ \\'SerialNumber\\' | translate }}{{ \\'Remove\\' | translate }}
    {{ product.partNumber }}{{ product.serialNumber }}
    ');\n$templateCache.put('app/pages/rma/components/partials/grids/product-grid-return/index.html','
    0\">
    {{ \\'PartNumber\\' | translate }}{{ \\'SerialNumber\\' | translate }}{{ \\'Quantidade\\' | translate }}{{ \\'Remove\\' | translate }}
    {{ product.partNumber }}{{ product.serialNumber }}{{ product.quantity }}
    ');\n$templateCache.put('app/pages/rma/components/partials/grids/product-grid-missing/index.html','
    0\">
    {{ \\'PartNumber\\' | translate }}{{ \\'SerialNumber\\' | translate }}{{ \\'Remove\\' | translate }}
    {{ product.partNumber }}{{ product.serialNumber }}
    ');\n$templateCache.put('app/pages/rma/components/partials/inputs/tax-refund/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/contatos/compras/index.html','

    {{ \\'ResponsavelPeloRecebimentoDeFaturasEletronicasSRI\\' | translate }}

    {{ \\'ResponsavelPeloRecebimentoDeFaturasEletronicasDIAN\\' | translate }}

    {{ \\'ContatoResponsavelPorCompras\\' | translate }}

    {{ \\'MesmasInformacoesDoContatoPrincipal\\' | translate }}

    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/contatos/logistica/index.html','

    {{ \\'ContatoResponsavelPorLogistica\\' | translate }}

    {{ \\'MesmasInformacoesDoContatoPrincipal\\' | translate }}

    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/contatos/contas/index.html','

    {{ \\'ContatoResponsavelPorContasAPagar\\' | translate }}

    {{ \\'MesmasInformacoesDoContatoPrincipal\\' | translate }}

    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/contatos/principal/index.html','

    {{ \\'ContatoPrincipalDoUsuario.Peru\\' | translate }}

    {{ \\'ContatoPrincipalDoUsuario\\' | translate }}

    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/endereco/bairro/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/contatos/nfe/index.html','

    {{ codERP != 2 ? \\'ContatoResponsavelporNFE\\' : \\'ContatoRepresentanteLegal\\' | translate }}

    {{ \\'MesmasInformacoesDoContatoPrincipal\\' | translate }}

    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/endereco/complemento/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/endereco/cidade/index.html','
    {{item.name }}
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/endereco/cep/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/endereco/estado/index.html','
    {{ item.name }}
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/endereco/completo/index.html','');\n$templateCache.put('app/pages/company-registry/components/partials/fields/endereco/logradouro/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/endereco/numero/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/endereco/pais/index.html','
    {{ item.name }}{{ \\'Searching\\' | translate }}... {{ \\'noResellerMatching\\' | translate }} \"{{ countrySearchText }}\" {{ \\'wereFound\\' | translate }}.
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/endereco/pais-fixo/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/endereco/suframa/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/bank-statements/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/ata-autoridades/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/banking-commercials-references/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/certificado-composiciĆ³n-accionaria/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/certificado-residente/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/certificado-constituicao/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/copia-id-representant/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/contrato-social/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/commercial-references/index.html','
    {{ \\'CommercialsReferences.Tooltip\\' | translate }}\"tooltip\"
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/declaracao-imposto/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/chamber-of-commerce-and-certificate/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/commercial-references-two-files/index.html','
    0\">
    {{ commercialFile.file.name }}
    {{ (commercialFile.file.size/1024/1024).toFixed(2) }}MB
    \"excluir\"
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/escrituras-empresa/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/dni/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/estados-financeiros-ano/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/financial-statements/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/financial-statements-current-year/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/financial-statements-last-year/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/igv/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/inscricao-impostos/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/identificacao-fiscal/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/other-files/index.html','

    0\">
    {{ \\'FileKey\\' | translate }}{{ \\'FileName\\' | translate }}{{ \\'FileSize\\' | translate }}{{ \\'FileType\\' | translate }}
    {{ otherFile.Name }}{{ otherFile.Content.name }}{{ (otherFile.size/1024/1024).toFixed(2) }}MB{{ otherFile.Content.type }}
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/licenca-funcionamento/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/legal-representative-id/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/single-document/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/sri/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/upload/single-tax-registration/index.html','
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/tipos-pessoas/chile/index.html','
    N\\xFAmero de RUT Inv\\xE1lido.
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/tipos-pessoas/equador/index.html','
    N\\xFAmero de RUC Inv\\xE1lido.
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/tipos-pessoas/colombia/index.html','
    N\\xFAmero de NIT Inv\\xE1lido.
    N\\xFAmero de CC Inv\\xE1lido.
    ');\n$templateCache.put('app/pages/company-registry/components/partials/fields/tipos-pessoas/peru/index.html','
    ');}]);"],"sourceRoot":"/source/"}