1'use strict'; // 2 3 4// 761110 5// 35000 6 7// **************************************************** 8// Gestion des Produits 9// **************************************************** 10angular.module('AboShopApp').factory('customerManager', ['vcRecaptchaService','$q','TbsWS','commonConfig', '$rootScope', 'Auth', 'cartManager', 'formulaireManager', 'dataManager', '$filter', 'googleTagManager',function (vcRecaptchaService, $q, TbsWS, commonConfig, $rootScope, Auth, cartManager, formulaireManager, dataManager, $filter, googleTagManager) { 11 12 var factory = {}; 13 factory.MIN_LENGTH_PHONENUMBER = 10; 14 factory.MAX_LENGTH_PHONENUMBER = 15; 15 factory.MIN_LENGTH_PASSWORD = 8; 16 factory.MAX_LENGTH_PASSWORD = 40; 17 factory.MAX_LENGTH_EMAIL = 80; 18 19 factory.CUSTOMER_STATUS_CREATE = "create"; 20 factory.CUSTOMER_STATUS_UPDATE = "update"; 21 factory.CUSTOMER_STATUS_UPDATE_BURNED = "update_burned"; 22 factory.CUSTOMER_STATUS_ERROR = "error"; 23 factory.CUSTOMER_STATUS_EXISTS = "exists"; 24 25 factory.COMMENT_STATUS_CREATE = "create"; 26 factory.COMMENT_STATUS_ERROR = "error"; 27 28 factory.ADDRESS_STATUS_CREATE = "create"; 29 factory.ADDRESS_STATUS_EDIT = "edit"; 30 factory.ADDRESS_STATUS_DELETE = "delete"; 31 factory.ADDRESS_STATUS_ERROR_COUNTRY = "error_country"; 32 33 factory.SUSPENSION_STATUS_CREATE = "create"; 34 factory.SUSPENSION_STATUS_DELETE = "delete"; 35 factory.SUSPENSION_STATUS_ERROR = "error"; 36 factory.SUSPENSION_STATUS_ERROR_DURATION = "error_duration"; 37 factory.SUSPENSION_STATUS_ERROR_NOT_SUSPENDED = "error_not_suspended"; 38 39 factory.ACCES_BENEFICIAIRE_STATUS_CREATE = "create"; 40 factory.ACCES_BENEFICIAIRE_STATUS_EXISTS = "exists"; 41 factory.ACCES_BENEFICIAIRE_STATUS_DELETE = "delete"; 42 factory.ACCES_BENEFICIAIRE_STATUS_ERROR = "error"; 43 44 factory.NEWSLETTER_SUBSCRIBE_EXISTS = "exists"; 45 factory.NEWSLETTER_SUBSCRIBE_EXISTS_BUT_NOT_VALID = "existsbutnotvalid"; 46 factory.NEWSLETTER_SUBSCRIBE_CREATE = "create"; 47 48 factory.FORGET_MAIL_UNKNOWN = "MAIL_UNKNOW"; 49 factory.FORGET_MAIL_SEND = "MAIL_OK"; 50 51 factory.LOGIN_EMAIL_PASSWORD = "email_password"; 52 53 factory.LOGIN = "#LOGIN#"; 54 factory.LOGIN_OK = factory.LOGIN+"OK"; 55 56 57 factory.LOGIN_MAIL_CP = factory.LOGIN+"MAIL_CP"; 58 factory.LOGIN_CODE_MDP_NOMAIL = factory.LOGIN+"CODE_MDP_NOMAIL"; 59 factory.LOGIN_CODE_MDP_WITHMAIL = factory.LOGIN+"CODE_MDP_WITHMAIL"; 60 factory.LOGIN_CODE_CP_NOMAIL = factory.LOGIN+"CODE_CP_NOMAIL"; 61 factory.LOGIN_CODE_CP_WITHMAIL = factory.LOGIN+"CODE_CP_WITHMAIL"; 62 factory.PASSWORD_UNSECURE = "PASSWORD_UNSECURE"; 63 factory.PASSWORD_EXPIRED = "PASSWORD_EXPIRED"; 64 factory.LOGIN_PASSWORD_UNSECURE = factory.LOGIN + factory.PASSWORD_UNSECURE; 65 factory.LOGIN_PASSWORD_EXPIRED = factory.LOGIN + factory.PASSWORD_EXPIRED; 66 67 factory.LIEN_EXPIRE = "LIEN_EXPIRE"; 68 69 70 factory.SHARE_SEND = "share_send"; 71 72 factory.routingSpecific = function routingSpecific(success){ 73 74 /*if($rootScope.signin.keepLogin == true){ 75 $rootScope.signin.login = ""; 76 $rootScope.signin.password = ""; 77 }*/ 78 var res = success.split("##"), tab=[],data={},elem=[]; 79 if(res.length == 2){ 80 tab = res[1].split("#"); 81 for(var i =0;i<tab.length;i++){ 82 elem = tab[i].split("="); 83 if(elem.length == 2){ 84 data[elem[0]] = elem[1]; 85 } 86 } 87 } 88 89 if(success.startsWith(factory.LOGIN_MAIL_CP)) { 90 $rootScope.signin.resetInProgress(); 91 _processRetour(data); 92 $rootScope.goPage(undefined, 'common/logingetpassword'); 93 } else if(success.startsWith(factory.LOGIN_CODE_MDP_NOMAIL)) { 94 $rootScope.signin.resetInProgress(); 95 _processRetour(data); 96 $rootScope.goPage(undefined, 'common/logingetemail'); 97 } else if(success.startsWith(factory.LOGIN_CODE_MDP_WITHMAIL)) { 98 $rootScope.signin.resetInProgress(); 99 _processRetour(data); 100 $rootScope.goPage(undefined, 'common/logininfo'); 101 } else if(success.startsWith(factory.LOGIN_CODE_CP_NOMAIL)) { 102 $rootScope.signin.resetInProgress(); 103 _processRetour(data); 104 $rootScope.goPage(undefined, 'common/logingetemailpwd'); 105 } else if(success.startsWith(factory.LOGIN_CODE_CP_WITHMAIL)) { 106 $rootScope.signin.resetInProgress(); 107 _processRetour(data); 108 $rootScope.goPage(undefined, 'common/logingetpasswordcp'); 109 } else if(success.startsWith(factory.LOGIN_PASSWORD_UNSECURE)) { 110 $rootScope.signin.resetInProgress(); 111 _processRetour(data); 112 $rootScope.goPage(undefined, 'common/passwordnonconforme'); 113 } else if(success.startsWith(factory.LOGIN_PASSWORD_EXPIRED)) { 114 if($rootScope.signin.error) { 115 $rootScope.signin.error.error_description = 'DICO_PASSWORD_EXPIRED_SEND_EMAIL'; 116 } 117 //$rootScope.signin.resetInProgress(); 118 //_processRetour(data); 119 //$rootScope.goPage(undefined, 'common/passwordexpired'); 120 } 121 }; 122 123 function _processRetour(data){ 124 $rootScope.signin.mail = data.mail; 125 $rootScope.signin.civilite = data.civilite; 126 $rootScope.signin.nom = data.nom; 127 $rootScope.signin.prenom = data.prenom; 128 if($rootScope.signin.nom === undefined && $rootScope.signin.prenom === undefined){ 129 $rootScope.signin.civilite = undefined; 130 } 131 } 132 133 function _getCustomerFromForm(customerForm, withAddress, customerOld) { 134 135 var customer = {},civilites,ob; 136 137 customer.codeClient = customerForm.others.codeClient; 138 customer.password = formulaireManager.getDefaultValue(_.findWhere(customerForm.fields, {name: "password"}),(customerOld !== undefined ? customerOld.password : null)); 139 customer.email = formulaireManager.getDefaultValue(_.findWhere(customerForm.fields, {name: "email"}),(customerOld !== undefined ? customerOld.email : null)); 140 customer.codeExterne = formulaireManager.getDefaultValue(_.findWhere(customerForm.fields, {name: "codeexterne"}),(customerOld !== undefined ? customerOld.codeexterne : null)); 141 customer.siret = formulaireManager.getDefaultValue(_.findWhere(customerForm.fields, {name: "siret"}),(customerOld !== undefined ? customerOld.siret : null)); 142 customer.pseudo = formulaireManager.getDefaultValue(_.findWhere(customerForm.fields, {name: "pseudo"}),(customerOld !== undefined ? customerOld.pseudo : null)); 143 customer.codeNii = formulaireManager.getDefaultValue(_.findWhere(customerForm.fields, {name: "codenii"}),(customerOld !== undefined ? customerOld.codenii : null)); 144 customer.langue = formulaireManager.getDefaultValue(_.findWhere(customerForm.fields, {name: "langue"}),(customerOld !== undefined ? customerOld.langue : $rootScope.preferredLanguage)); 145 146 //customer.statut = ""; 147 customer.adresses = []; 148 if(withAddress){ 149 customer.adresses.push(_getAdresseFromForm(customerForm)); 150 } 151 customer.listWCS = []; 152 _getCSFromForm(customerForm.csBlockPrincipal,customer.listWCS); 153 _getCSFromForm(customerForm.csOptionnal,customer.listWCS); 154 return customer; 155 }; 156 157 factory.getShareForm = function getShareForm(title,url){ 158 var shareForm = {},ob={}; 159 shareForm.alert = {}; 160 shareForm.alert.message = []; 161 shareForm.success = {}; 162 shareForm.success.message = []; 163 shareForm.fields = []; 164 shareForm.others = {}; 165 shareForm.others.title = title; 166 shareForm.others.url = url; 167 168 var share = dataManager.getShareData(); 169 170 ob={}; 171 formulaireManager.createEmail("email",ob,(share.email!==undefined?share.email:""),'DICO_SHARE_SON_EMAIL',true,"text",0,factory.MAX_LENGTH_EMAIL); 172 shareForm.fields.push(ob); 173 174 ob={}; 175 formulaireManager.createTextField("name",ob,(share.name!==undefined?share.name:""),'DICO_SHARE_VOTRE_NOM',true,"text",0,80); 176 shareForm.fields.push(ob); 177 178 ob={}; 179 formulaireManager.createTextArea("message",ob,(share.message!==undefined?share.message:""),'DICO_SHARE_VOTRE_MESSAGE',5,true,"text",70,500); 180 shareForm.fields.push(ob); 181 182 return shareForm; 183 }; 184 185 function _getUpdateCustomerFromForm(newEmailForm) { 186 var updateCustomer = {},civilites,ob; 187 188 if(newEmailForm.others.codeclient !== undefined){ 189 updateCustomer.codeClient = newEmailForm.others.codeclient; 190 } 191 updateCustomer.email = formulaireManager.getDefaultValue(_.findWhere(newEmailForm.fields, {name: "email"}),""); 192 if(newEmailForm.others.password !== undefined){ 193 updateCustomer.password = newEmailForm.others.password; 194 } else { 195 updateCustomer.password = formulaireManager.getDefaultValue(_.findWhere(newEmailForm.fields, {name: "password"}),""); 196 } 197 if(newEmailForm.others.jeton !== undefined){ 198 updateCustomer.jeton = newEmailForm.others.jeton; 199 } 200 201 return updateCustomer; 202 } 203 204 factory.getEmailForm = function getEmailForm(){ 205 206 var newloginForm = {},ob={}; 207 newloginForm.fields = []; 208 newloginForm.others = {}; 209 210 var customer = dataManager.getSetEmailData(); 211 212 if($rootScope.signin.mail !== undefined)customer.email = $rootScope.signin.mail; 213 if($rootScope.signin.civilite !== undefined)customer.civilite = $rootScope.signin.civilite; 214 if($rootScope.signin.nom !== undefined)customer.nom = $rootScope.signin.nom; 215 if($rootScope.signin.prenom !== undefined)customer.prenom = $rootScope.signin.prenom; 216 217 ob={}; 218 formulaireManager.createEmail("email",ob,(customer.email!==undefined?customer.email:""),"DICO_CUSTOMER_EMAIL", true,"text", 0, factory.MAX_LENGTH_EMAIL); 219 newloginForm.others.civilite = (customer.civilite!==undefined?customer.civilite:""); 220 newloginForm.others.nom = (customer.nom!==undefined?customer.nom:""); 221 newloginForm.others.prenom = (customer.prenom!==undefined?customer.prenom:""); 222 223 ob.editable = false; 224 newloginForm.fields.push(ob); 225 226 return newloginForm; 227 }; 228 229 factory.getSetEmailForm = function getSetEmailForm(){ 230 var newloginForm = {},ob={}; 231 newloginForm.alert = {}; 232 newloginForm.alert.message = []; 233 newloginForm.success = {}; 234 newloginForm.success.message = []; 235 newloginForm.fields = []; 236 newloginForm.others = {}; 237 238 if(!Auth.isClientConnecte()){ 239 formulaireManager.createCaptcha(newloginForm,true,"newloginForm"); 240 } 241 242 var customer = dataManager.getSetEmailData(); 243 244 if($rootScope.signin.mail !== undefined)customer.email = $rootScope.signin.mail; 245 if($rootScope.signin.civilite !== undefined)customer.civilite = $rootScope.signin.civilite; 246 if($rootScope.signin.nom !== undefined)customer.nom = $rootScope.signin.nom; 247 if($rootScope.signin.prenom !== undefined)customer.prenom = $rootScope.signin.prenom; 248 249 newloginForm.others.codeclient = $rootScope.signin.login; 250 newloginForm.others.password = $rootScope.signin.password; 251 newloginForm.others.civilite = (customer.civilite!==undefined?customer.civilite:""); 252 newloginForm.others.nom = (customer.nom!==undefined?customer.nom:""); 253 newloginForm.others.prenom = (customer.prenom!==undefined?customer.prenom:""); 254 255 ob={}; 256 formulaireManager.createEmail("email",ob,(customer.email!==undefined?customer.email:""),"DICO_CUSTOMER_EMAIL", true,"text", 0, factory.MAX_LENGTH_EMAIL); 257 newloginForm.fields.push(ob); 258 259 return newloginForm; 260 }; 261 262 factory.getSetEmailPasswordForm = function getSetEmailPasswordForm(){ 263 var newloginForm = {},ob={}; 264 newloginForm.alert = {}; 265 newloginForm.alert.message = []; 266 newloginForm.success = {}; 267 newloginForm.success.message = []; 268 newloginForm.fields = []; 269 newloginForm.others = {}; 270 271 if(!Auth.isClientConnecte()){ 272 formulaireManager.createCaptcha(newloginForm,true,"newloginForm"); 273 } 274 275 var customer = dataManager.getSetEmailData(); 276 277 if($rootScope.signin.mail !== undefined)customer.email = $rootScope.signin.mail; 278 if($rootScope.signin.civilite !== undefined)customer.civilite = $rootScope.signin.civilite; 279 if($rootScope.signin.nom !== undefined)customer.nom = $rootScope.signin.nom; 280 if($rootScope.signin.prenom !== undefined)customer.prenom = $rootScope.signin.prenom; 281 282 newloginForm.others.codeclient = $rootScope.signin.login; 283 newloginForm.others.civilite = (customer.civilite!==undefined?customer.civilite:""); 284 newloginForm.others.nom = (customer.nom!==undefined?customer.nom:""); 285 newloginForm.others.prenom = (customer.prenom!==undefined?customer.prenom:""); 286 287 ob={}; 288 formulaireManager.createEmail("email",ob,(customer.email!==undefined?customer.email:""),"DICO_CUSTOMER_EMAIL", true,"text", 0, factory.MAX_LENGTH_EMAIL); 289 newloginForm.fields.push(ob); 290 291 ob = {}; 292 formulaireManager.createPassword("password",ob,(customer.testpassword!==undefined?customer.testpassword:""),"DICO_CUSTOMER_MOTDEPASSE",true,"text", factory.MIN_LENGTH_PASSWORD, factory.MAX_LENGTH_PASSWORD); 293 newloginForm.fields.push(ob); 294 295 ob = {}; 296 formulaireManager.createPassword("confirmpassword",ob,(customer.testpassword!==undefined?customer.testpassword:""),"DICO_CUSTOMER_CONFIRM_MOTDEPASSE",true,"text", 0, factory.MAX_LENGTH_PASSWORD); 297 newloginForm.fields.push(ob); 298 299 return newloginForm; 300 }; 301 302 factory.getSendEmailForm = function getSendEmailForm(withPassAndConfirm=false, withEditableEmail=false, withEmail=true){ 303 let newloginForm = {},ob={}; 304 newloginForm.alert = {}; 305 newloginForm.alert.message = []; 306 newloginForm.success = {}; 307 newloginForm.success.message = []; 308 newloginForm.fields = []; 309 newloginForm.others = {}; 310 311 var customer = dataManager.getSetEmailData(); 312 313 if($rootScope.signin.mail !== undefined)customer.email = $rootScope.signin.mail; 314 if($rootScope.signin.civilite !== undefined)customer.civilite = $rootScope.signin.civilite; 315 if($rootScope.signin.nom !== undefined)customer.nom = $rootScope.signin.nom; 316 if($rootScope.signin.prenom !== undefined)customer.prenom = $rootScope.signin.prenom; 317 318 if(withEmail) { 319 ob = {}; 320 formulaireManager.createEmail("email", ob, (customer.email !== undefined ? customer.email : ""), "DICO_CUSTOMER_EMAIL", true, "text", 0, factory.MAX_LENGTH_EMAIL); 321 ob.editable = withEditableEmail; 322 newloginForm.fields.push(ob); 323 } 324 325 if(withPassAndConfirm){ 326 ob = {}; 327 formulaireManager.createPassword("password",ob,(customer.testpassword!==undefined?customer.testpassword:""),"DICO_CUSTOMER_LOGGED_MOTDEPASSE",true,"text", factory.MIN_LENGTH_PASSWORD, factory.MAX_LENGTH_PASSWORD); 328 newloginForm.fields.push(ob); 329 330 ob = {}; 331 formulaireManager.createPassword("confirmpassword",ob,(customer.testpassword!==undefined?customer.testpassword:""),"DICO_CUSTOMER_CONFIRM_MOTDEPASSE",true,"text",0, factory.MAX_LENGTH_PASSWORD); 332 newloginForm.fields.push(ob); 333 } 334 335 newloginForm.others.civilite = (customer.civilite!==undefined?customer.civilite:""); 336 newloginForm.others.nom = (customer.nom!==undefined?customer.nom:""); 337 newloginForm.others.prenom = (customer.prenom!==undefined?customer.prenom:""); 338 339 return newloginForm; 340 }; 341 342 factory.getModifyPasswordForm = function getModifyPasswordForm(dataStr, jeton){ 343 var tab=[],data={},elem=[]; 344 tab = dataStr.split("#"); 345 for(var i =0;i<tab.length;i++){ 346 elem = tab[i].split("="); 347 if(elem.length == 2){ 348 data[elem[0]] = elem[1]; 349 } 350 } 351 _processRetour(data);
352 let newloginForm = this.getSendEmailForm(true, false, true); 353 if (jeton && newloginForm && newloginForm.others) { 354 newloginForm.others.jeton = jeton; 355 } 356 return newloginForm; 357 }; 358 359 factory.getSetPasswordForm = function getSetPasswordForm(){ 360 var newloginForm = {},ob={}; 361 newloginForm.alert = {}; 362 newloginForm.alert.message = []; 363 newloginForm.success = {}; 364 newloginForm.success.message = []; 365 newloginForm.fields = []; 366 newloginForm.others = {}; 367 368 if(!Auth.isClientConnecte()){ 369 formulaireManager.createCaptcha(newloginForm,true,"newloginForm"); 370 } 371 372 var customer = dataManager.getSetEmailData(); 373 374 if($rootScope.signin.mail !== undefined)customer.email = $rootScope.signin.mail; 375 if($rootScope.signin.civilite !== undefined)customer.civilite = $rootScope.signin.civilite; 376 if($rootScope.signin.nom !== undefined)customer.nom = $rootScope.signin.nom; 377 if($rootScope.signin.prenom !== undefined)customer.prenom = $rootScope.signin.prenom; 378 379 ob={}; 380 formulaireManager.createEmail("email",ob,(customer.email!==undefined?customer.email:""),"DICO_CUSTOMER_EMAIL", true,"text", 0, factory.MAX_LENGTH_EMAIL); 381 ob.editable = false; 382 newloginForm.fields.push(ob); 383 384 ob = {}; 385 formulaireManager.createPassword("password",ob,(customer.testpassword!==undefined?customer.testpassword:""),"DICO_CUSTOMER_MOTDEPASSE",true,"text", factory.MIN_LENGTH_PASSWORD, factory.MAX_LENGTH_PASSWORD); 386 newloginForm.fields.push(ob); 387 388 ob = {}; 389 formulaireManager.createPassword("confirmpassword",ob,(customer.testpassword!==undefined?customer.testpassword:""),"DICO_CUSTOMER_CONFIRM_MOTDEPASSE",true,"text", 0, factory.MAX_LENGTH_PASSWORD); 390 newloginForm.fields.push(ob); 391 392 newloginForm.others.civilite = (customer.civilite!==undefined?customer.civilite:""); 393 newloginForm.others.nom = (customer.nom!==undefined?customer.nom:""); 394 newloginForm.others.prenom = (customer.prenom!==undefined?customer.prenom:""); 395 396 return newloginForm; 397 }; 398 399 factory.sharePage = function sharePage(shareForm){ 400 var deferred = $q.defer(), 401 shareMessage = {}; 402 403 shareForm.alert.message = []; 404 405 if(!formulaireManager.verifForm(shareForm)){ 406 deferred.resolve(false); 407 } else { 408 shareMessage.titre=shareForm.others.title; 409 shareMessage.url=shareForm.others.url; 410 411 shareMessage.email = formulaireManager.getDefaultValue(_.findWhere(shareForm.fields, {name: "email"}),""); 412 shareMessage.nom = formulaireManager.getDefaultValue(_.findWhere(shareForm.fields, {name: "name"}),""); 413 shareMessage.message = formulaireManager.getDefaultValue(_.findWhere(shareForm.fields, {name: "message"}),""); 414 415 TbsWS.call('sharepage','public',shareMessage).then( 416 function(result){ 417 shareForm.alert.message = []; 418 if(result && result.key === "sharepage"){ 419 var status = result.value; 420 if(!status || status === undefined){ 421 shareForm.alert.message.push("DICO_ERREUR_CUSTOMER_REPONSE_INCOHERENTE"); 422 deferred.resolve(false); 423 } else { 424 status = status.replace(/"/g,''); 425 if(status == factory.SHARE_SEND){ 426 deferred.resolve(true); 427 } else { 428 shareForm.alert.message.push("DICO_ERREUR_CUSTOMER_SHARE_MESSAGE"); 429 deferred.resolve(false); 430 } 431 } 432 } else { 433 deferred.resolve(false); 434 } 435 } 436 ,function(error) { 437 shareForm.alert.message.push("DICO_ERREUR_CUSTOMER_SHARE_MESSAGE"); 438 deferred.resolve(false); 439 } 440 ); 441 } 442 return deferred.promise; 443 }; 444 445 function _getAdresseFromForm(adresseForm) { 446 447 var adresse = {}, 448 territoire, 449 civilites, 450 ob, 451 type; 452 453 adresse.estPrincipale = adresseForm.others.estPrincipale; 454 455 adresse.estLivraison = adresseForm.others.estLivraison; 456 adresse.estParrainnage = adresseForm.others.estParrainnage; 457 458 type = formulaireManager.getDefaultValue(_.findWhere(adresseForm.fields, {name: "type"}),""); 459 if(type !== ""){ 460 if(type === "delivery"){ 461 adresse.estLivraison = true; 462 } else { 463 adresse.estLivraison = false; 464 } 465 } 466 467 if(adresseForm.others.refAdresse === undefined){ 468 adresse.refAdresse = null; 469 } else { 470 adresse.refAdresse = adresseForm.others.refAdresse; 471 } 472 if(adresseForm.others.codeClient === undefined){ 473 adresse.codeClient = null; 474 } else { 475 adresse.codeClient = adresseForm.others.codeClient; 476 } 477 adresse.titreAdresse = formulaireManager.getDefaultValue(_.findWhere(adresseForm.fields, {name: "title"}),"Principale"); 478 adresse.adresse1 = formulaireManager.getDefaultValue(_.findWhere(adresseForm.fields, {name: "address1"}),""); 479 adresse.adresse2 = formulaireManager.getDefaultValue(_.findWhere(adresseForm.fields, {name: "address2"}),""); 480 adresse.adresse3 = formulaireManager.getDefaultValue(_.findWhere(adresseForm.fields, {name: "address3"}),""); 481 adresse.adresse4 = formulaireManager.getDefaultValue(_.findWhere(adresseForm.fields, {name: "address4"}),""); 482 adresse.codepostal = formulaireManager.getDefaultValue(_.findWhere(adresseForm.fields, {name: "codepostal"}),""); 483 adresse.region = formulaireManager.getDefaultValue(_.findWhere(adresseForm.fields, {name: "country"}),""); 484 adresse.ville = formulaireManager.getDefaultValue(_.findWhere(adresseForm.fields, {name: "city"}),""); 485 486 adresse.societe = formulaireManager.getDefaultValue(_.findWhere(adresseForm.fields, {name: "company"}),""); 487 488 civilites = _.findWhere(adresseForm.fields, {name: "civilite"}); 489 if(civilites.value !== undefined && civilites.value !== null && civilites.value !== ""){ 490 ob = _.findWhere(civilites.values, {value: civilites.value}); 491 adresse.civilite = ob.label; 492 } 493 494 adresse.nom = formulaireManager.getDefaultValue(_.findWhere(adresseForm.fields, {name: "name"}),""); 495 adresse.prenom = formulaireManager.getDefaultValue(_.findWhere(adresseForm.fields, {name: "firstname"}),""); 496 497 territoire = formulaireManager.getDefaultValue(_.findWhere(adresseForm.fields, {name: "state"}),""); 498 if(territoire !== undefined){ 499 adresse.codeIso = territoire.codeIso; 500 if($rootScope.preferredLanguage == 'fr'){ 501 adresse.pays = territoire.nomTerritoire; 502 } else { 503 adresse.pays = territoire.nomTerritoireUs; 504 } 505 506 } 507 adresse.telephone = formulaireManager.getDefaultValue(_.findWhere(adresseForm.fields, {name: "phonenumber"}),""); 508 adresse.telecopie = formulaireManager.getDefaultValue(_.findWhere(adresseForm.fields, {name: "faxnumber"}),""); 509 adresse.portable = formulaireManager.getDefaultValue(_.findWhere(adresseForm.fields, {name: "mobilphonenumber"}),""); 510 511 if(adresse.estParrainnage === true){ 512 adresse.email = formulaireManager.getDefaultValue(_.findWhere(adresseForm.fields, {name: "email"}),""); 513 adresse.envoieEmailBeneficiaire = formulaireManager.getDefaultValue(_.findWhere(adresseForm.fields, {name: "envoieemail"}),false); 514 } else { 515 adresse.email = ""; 516 adresse.envoieEmailBeneficiaire=false; 517 } 518 519 adresse.dateDebut = formulaireManager.getDefaultValue(_.findWhere(adresseForm.fields, {name: "datedebut"}),null); 520 adresse.dateFin = formulaireManager.getDefaultValue(_.findWhere(adresseForm.fields, {name: "datefin"}),null); 521 522 return adresse; 523 }; 524 525 function _getCSFromForm(csForm,listWCS) { 526 527 var cs = {}; 528 529 for(var i = 0; i< csForm.length;i++){ 530 if(csForm[i].value !== undefined){ 531 cs = {}; 532 cs.keyCS = csForm[i].key; 533 cs.refInterneCS = csForm[i].refInterneCS; 534 cs.typeCS = csForm[i].typeCs; 535 if(csForm[i].value !== undefined && cs.typeCS !== 'F'){ 536 //Booleen 537 if(csForm[i].typeSaisie == "3"){ 538 cs.value = (csForm[i].value?'true':'false'); 539 }
539 else if (cs.typeCS === 'D' && angular.isDate(csForm[i].value)) { 540 var date = csForm[i].value; 541 date.setMinutes(date.getMinutes()-date.getTimezoneOffset()) 542 cs.value = date.toJSON().substr(0, 10); 543 } else { 544 cs.value = csForm[i].value; 545 } 546 } 547 listWCS.push(cs); 548 } 549 } 550 }; 551 552 factory.getDeliveryAddress = function getDeliveryAddress(customer){ 553 if(customer.adresses && customer.adresses !== undefined && customer.adresses.length > 0){ 554 for(var i=0;i<customer.adresses.length;i++){ 555 if(customer.adresses[i].estLivraisonActive){ 556 return customer.adresses[i]; 557 } 558 } 559 } 560 return undefined; 561 }; 562 563 factory.setUseParrainnageAdress = function setUseParrainnageAdress(){ 564 return _setParrainnageAddress(true); 565 }; 566 567 factory.setResetParrainnageAdress = function setResetParrainnageAdress(){ 568 return _setParrainnageAddress(false); 569 }; 570 571 function _setParrainnageAddress(state){ 572 var deferred = $q.defer(); 573 TbsWS.call('setparrainnageaddress/' + cartManager.model.cart.id+'/'+(state?"true":"false"), 'private').then( 574 function(result){ 575 deferred.resolve(true); 576 } 577 ,function(error) { 578 deferred.resolve(true); 579 } 580 ); 581 return deferred.promise; 582 } 583 584 factory.getSelectedDeliveryForm = function getSelectedDeliveryForm(customer){ 585 var i=0, 586 deliveryAdresse=-1, 587 selectAdresses=[], 588 ob={}, 589 adressSelectForm = {}; 590 591 adressSelectForm.alert = {}; 592 adressSelectForm.alert.message = []; 593 adressSelectForm.others = {}; 594 595 if(customer.adresses && customer.adresses !== undefined && customer.adresses.length > 0){ 596 for(i;i<customer.adresses.length;i++){ 597 ob={}; 598 ob.value = customer.adresses[i]; 599 ob.label = customer.adresses[i].titreAdresse; 600 if(customer.adresses[i].estLivraison){ 601 deliveryAdresse = i; 602 } 603 selectAdresses.push(ob); 604 } 605 } 606 607 formulaireManager.createSelect("adresse",adressSelectForm,"DICO_CHOIX_ADRESSE",selectAdresses,false,deliveryAdresse); 608 return adressSelectForm; 609 }; 610 611 factory.setDeliveryAdress = function setDeliveryAdress(adressSelectForm,customer){ 612 var deferred = $q.defer(); 613 adressSelectForm.alert.message = []; 614 if(!formulaireManager.verifForm(adressSelectForm)){ 615 deferred.resolve(false); 616 } else { 617 TbsWS.call('setdeliveryaddress','private',adressSelectForm.value).then( 618 function(result){ 619 if(result && result.key === "editaddress"){ 620 var status = result.value; 621 adressSelectForm.alert.message = []; 622 if(!status || status === undefined){ 623 adressSelectForm.alert.message.push("DICO_ERREUR_CUSTOMER_REPONSE_INCOHERENTE"); 624 deferred.resolve(false); 625 } else { 626 status = status.replace(/"/g,''); 627 if(status == factory.ADDRESS_STATUS_EDIT){ 628 if(customer !== undefined){ 629 for(var i=0;i<customer.adresses.length;i++){ 630 customer.adresses[i].estLivraison = false; 631 } 632 } 633 adressSelectForm.value.estLivraison = true; 634 deferred.resolve(true); 635 } else { 636 adressSelectForm.alert.message.push("DICO_ERREUR_CUSTOMER_CHOISIR_ADRESSE_LIVRAISON"); 637 deferred.resolve(false); 638 } 639 } 640 } else { 641 deferred.resolve(false); 642 } 643 } 644 ,function(error) { 645 adressSelectForm.alert.message.push("DICO_ERREUR_CUSTOMER_CHOISIR_ADRESSE_LIVRAISON"); 646 deferred.resolve(false); 647 } 648 ); 649 } 650 return deferred.promise; 651 }; 652 653 factory.getCustomer = function getCustomer(withParrainnage){ 654 var deferred = $q.defer(); 655 if(withParrainnage !== undefined && withParrainnage){ 656 TbsWS.call('getcustomercart/'+cartManager.model.cart.id,'private').then( 657 function(customer){ 658 deferred.resolve(customer); 659 } 660 ,function(error) { 661 console.error(error); 662 deferred.resolve(null); 663 } 664 ); 665 666 } else { 667 TbsWS.call('getcustomer','private').then( 668 function(customer) { 669 // on peut avoir des adresses estTemporaire=true et estPrincipale = true, ce qui est contradictoire 670 // a corriger idéalement dans Mahalo sur getcustomer 671 if (customer.adresses && customer.adresses.length > 0) {
672 customer.adresses.forEach(function(adresse) { 673 if (adresse.estTemporaire === true && adresse.estPrincipale === true) { 674 adresse.estTemporaire = false; 675 } 676 }); 677 } 678 deferred.resolve(customer); 679 } 680 ,function(error) { 681 console.error(error); 682 deferred.resolve(null); 683 } 684 ); 685 } 686 return deferred.promise; 687 }; 688 689 factory.getCustomerByCodeClient = function getCustomerByCodeClient(codeClient) { 690 var deferred = $q.defer(); 691 TbsWS.call('getcustomer/' + codeClient, 'private').then( 692 function (customer) { 693 deferred.resolve(customer); 694 }, 695 function (error) { 696 console.error(error); 697 deferred.resolve(null); 698 } 699 ); 700 return deferred.promise; 701 }; 702 703 function _storeCgv(newAdressForm){ 704 var ob = _.findWhere(newAdressForm.fields, {cgv: true}); 705 if(ob !== undefined){ 706 console.log("cgv is check"); 707 cartManager.changeStateCgv(ob.value); 708 } 709 } 710 711 factory.editAddressFunction = function editAddressFunction(newAdressForm, adresses, customer){ 712 var deferred = $q.defer(); 713 newAdressForm.alert.message = []; 714 if(!formulaireManager.verifForm(newAdressForm) || chevauchement(newAdressForm, adresses) || verifEmailBeneficiaire(newAdressForm, customer)){ 715 deferred.resolve(false); 716 } else { 717 //store cgv 718 _storeCgv(newAdressForm); 719 720 let newaddress; 721 if(newAdressForm.withAdress){ 722 //Adresse complète 723 newaddress = _getAdresseFromForm(newAdressForm); 724 if(newaddress && newaddress !== undefined){ 725 if(newaddress.estParrainnage){ 726 _setParrainnageAdresse(deferred,newAdressForm,newaddress); 727 return deferred.promise; 728 } 729 } else { 730 newAdressForm.alert.message.push("DICO_ERREUR_CUSTOMER_PENDANT_MODIFICATION"); 731 deferred.resolve(false); 732 return deferred.promise; 733 } 734 } else if(commonConfig.forceAskInfoCustomerInfoOnDelivery) { 735 //Adresse partielle 736 //On force l'enregistrement dans tous les cas car les infos nom + prenom + pays + telephone sont obligatoires 737 let ob; 738 for(var i=0;i<newAdressForm.fields.length;i++){ 739 ob = newAdressForm.fields[i]; 740 ob.name = ob.name.replace('disabled-',''); 741 } 742 newaddress = _getAdresseFromForm(newAdressForm); 743 } 744 745 let customerForm = {}; 746 customerForm.others={}; 747 customerForm.fields = _.where(newAdressForm.fields, {origin: "customer"}); 748 customerForm.csBlockPrincipal = _.where(newAdressForm.fields, {origin: "cs"}); 749 customerForm.csOptionnal = []; 750 customerForm.others.codeClient = customer.codeClient; 751 752 function _editAdress(){ 753 newaddress.email = customer.email; 754 TbsWS.call('editaddress','private',newaddress).then( 755 function(result){ 756 if(result && result.key === "editaddress"){ 757 var status = result.value; 758 if(!status || status === undefined){ 759 newAdressForm.alert.message.push("DICO_ERREUR_CUSTOMER_REPONSE_INCOHERENTE"); 760 deferred.resolve(false); 761 } else { 762 status = status.replace(/"/g,''); 763 if(status == factory.ADDRESS_STATUS_EDIT) { 764 //reload customer 765 deferred.resolve(true); 766 } else if (status === factory.ADDRESS_STATUS_ERROR_COUNTRY) { 767 newAdressForm.alert.message.push("DICO_ERREUR_ADDRESS_COUNTRY_PENDANT_MODIFICATION"); 768 deferred.resolve(false); 769 } else { 770 newAdressForm.alert.message.push("DICO_ERREUR_CUSTOMER_PENDANT_MODIFICATION"); 771 deferred.resolve(false); 772 } 773 } 774 } else { 775 newAdressForm.alert.message.push("DICO_ERREUR_CUSTOMER_PENDANT_MODIFICATION"); 776 deferred.resolve(false); 777 } 778 } 779 ,function(error) { 780 newAdressForm.alert.message.push("DICO_ERREUR_CUSTOMER_PENDANT_MODIFICATION"); 781 deferred.resolve(false); 782 } 783 ); 784 } 785 786 if(commonConfig.forceAskInfoCustomerInfoOnDelivery && customerForm.fields.length > 0 || customerForm.csBlockPrincipal.length > 0) {
787 let custo = _getCustomerFromForm(customerForm, false, customer); 788 TbsWS.call('editcustomer/' + cartManager.model.cart.id,'private',custo).then( 789 function(result){ 790 if(result && result.key === "editcustomer"){ 791 var status = result.value; 792 if(!status || status === undefined){ 793 newAdressForm.alert.message.push("DICO_ERREUR_CUSTOMER_REPONSE_INCOHERENTE"); 794 deferred.resolve(false); 795 } else { 796 status = status.replace(/"/g,''); 797 if(status.indexOf(factory.CUSTOMER_STATUS_UPDATE_BURNED) == 0){ 798 deferred.resolve('logout'); 799 } else if(status.indexOf(factory.CUSTOMER_STATUS_UPDATE) == 0){ 800 _editAdress(); 801 } else if(status == factory.CUSTOMER_STATUS_EXISTS){ 802 newAdressForm.alert.message.push("DICO_ERREUR_CUSTOMER_CLIENT_EXISTE"); 803 deferred.resolve(false); 804 } else { 805 newAdressForm.alert.message.push("DICO_ERREUR_CUSTOMER_PENDANT_MODIFICATION"); 806 deferred.resolve(false); 807 } 808 } 809 } else { 810 deferred.resolve(false); 811 } 812 } 813 ,function(error) { 814 newAdressForm.alert.message.push("DICO_ERREUR_CUSTOMER_CREATION_IMPOSSIBLE"); 815 deferred.resolve(false); 816 } 817 ); 818 } else { 819 _editAdress(); 820 } 821 } 822 return deferred.promise; 823 }; 824 825 factory.deleteAddressFunction = function deleteAddressFunction(adresse){ 826 var deferred = $q.defer(); 827 if(adresse && adresse !== undefined){ 828 TbsWS.call('deleteaddress','private',adresse).then( 829 function(result){ 830 if(result && result.key === "deleteaddress"){ 831 var status = result.value; 832 if(!status || status === undefined){ 833 deferred.resolve(false); 834 } else { 835 status = status.replace(/"/g,''); 836 if(status == factory.ADDRESS_STATUS_DELETE){ 837 deferred.resolve(true); 838 } else { 839 deferred.resolve(false); 840 } 841 } 842 } else { 843 deferred.resolve(false); 844 } 845 } 846 ,function(error) { 847 console.error('Create adresse impossible'); 848 deferred.resolve(false); 849 } 850 ); 851 } 852 return deferred.promise; 853 }; 854 855 factory.updateLogin = function updateLogin(newEmailForm){ 856 var deferred = $q.defer(); 857 newEmailForm.alert.message = []; 858 newEmailForm.alert.messageCustom = undefined; 859 if(!formulaireManager.verifForm(newEmailForm)){ 860 deferred.resolve(false); 861 } else { 862 var updatecustomer = _getUpdateCustomerFromForm(newEmailForm); 863 if(updatecustomer && updatecustomer !== undefined){ 864 TbsWS.call('updatelogin/' + cartManager.model.cart.id, 'public', updatecustomer, (newEmailForm.others.captcha !== undefined ? vcRecaptchaService.getResponse(newEmailForm.others.captcha.widgetId) : "" )).then( 865 function(result){ 866 newEmailForm.alert.message = []; 867 if(result && result.key === "updatelogin"){ 868 var status = result.value; 869 if(!status || status === undefined){ 870 newEmailForm.alert.message.push("DICO_ERREUR_CUSTOMER_REPONSE_INCOHERENTE"); 871 deferred.resolve(false); 872 } else { 873 status = status.replace(/"/g,''); 874 if(status.indexOf(factory.CUSTOMER_STATUS_UPDATE) == 0 || status.indexOf(factory.CUSTOMER_STATUS_CREATE) == 0){ 875 formulaireManager.resetForm(newEmailForm); 876 deferred.resolve(true); 877 } else if(status.indexOf(factory.CUSTOMER_STATUS_UPDATE) == 0 || status.indexOf(factory.CUSTOMER_STATUS_EXISTS) == 0){ 878 newEmailForm.alert.message.push("DICO_ERREUR_CUSTOMER_CLIENT_EXISTE"); 879 deferred.resolve(false); 880 } else { 881 if(status.contains(factory.CUSTOMER_STATUS_ERROR+"##")) { 882 status = status.replace(factory.CUSTOMER_STATUS_ERROR+"##",""); 883 if(status.contains(factory.PASSWORD_UNSECURE+"##")) { 884 status = status.replace(factory.PASSWORD_UNSECURE + "##", ""); 885 newEmailForm.alert.messageCustom = status; 886 } else if(status.contains(factory.PASSWORD_EXPIRED+"##")) { 887 status = status.replace(factory.PASSWORD_EXPIRED + "##", ""); 888 newEmailForm.alert.messageCustom = status; 889 } else { 890 newEmailForm.alert.message.push(status); 891 } 892 } else { 893 newEmailForm.alert.message.push("DICO_ERREUR_CUSTOMER_PENDANT_MODIFICATION"); 894 } 895 deferred.resolve(false); 896 } 897 } 898 } else { 899 deferred.resolve(false); 900 } 901 } 902 ,function(error) { 903 newEmailForm.alert.message.push("DICO_ERREUR_CUSTOMER_CREATION_IMPOSSIBLE"); 904 deferred.resolve(false); 905 } 906 ); 907 } else { 908 newEmailForm.alert.message.push("DICO_ERREUR_CUSTOMER_CREATION_IMPOSSIBLE"); 909 deferred.resolve(false); 910 } 911 } 912 return deferred.promise; 913 }; 914 915 function _setParrainnageAdresse(deferred,newAdressForm,newaddress){ 916 TbsWS.call('setdeliveryaddress/'+cartManager.model.cart.id,'private',newaddress).then( 917 function(result){ 918 if(result && result.key === "setdeliveryaddress"){ 919 var status = result.value; 920 if(!status || status === undefined){ 921 newAdressForm.alert.message.push("DICO_ERREUR_CUSTOMER_REPONSE_INCOHERENT
921E"); 922 deferred.resolve(false); 923 } else { 924 status = status.replace(/"/g,''); 925 if(status == factory.ADDRESS_STATUS_EDIT){ 926 deferred.resolve(true); 927 928 } else { 929 deferred.resolve(false); 930 } 931 } 932 } else { 933 deferred.resolve(false); 934 } 935 } 936 ,function(error) { 937 adressSelectForm.alert.message.push("DICO_ERREUR_CUSTOMER_CHOISIR_ADRESSE_LIVRAISON"); 938 deferred.resolve(false); 939 } 940 ); 941 } 942 943 function chevauchement(addressForm, adresses) { 944 let hasChevauchement = false; 945 if (adresses != null) { 946 let refAdresse = addressForm.others.refAdresse; 947 let dateDebut = addressForm.fields[16].value; 948 let dateFin = addressForm.fields[17].value; 949 950 if(dateDebut === "" && dateFin === ""){ 951 for(let i = 0; i < adresses.length; ++i){ 952 let item = adresses[i]; 953 if(item.estLivraison && !item.estPrincipale){ 954 addressForm.alert.message.push("DICO_ERREUR_ADDRESS_CHEVAUCHEMENT"); 955 hasChevauchement = true; 956 break; 957 } 958 } 959 } else if(dateDebut !== null && dateDebut !== "" && dateFin !== null && dateFin !== ""){ 960 for(let i = 0; i < adresses.length; ++i){ 961 let item = adresses[i]; 962 if (item.refAdresse === refAdresse){ 963 continue; 964 } 965 if (item.estTemporaire && new Date(item.dateDebut) <= dateFin && new Date(item.dateFin) >= dateDebut){ 966 hasChevauchement = true; 967 addressForm.alert.message.push("DICO_ERREUR_ADDRESS_CHEVAUCHEMENT"); 968 break; 969 } 970 } 971 } else { 972 addressForm.alert.message.push("DICO_DEBUT_ET_FIN_OBLIGATOIRE"); 973 hasChevauchement = true; 974 } 975 } 976 return hasChevauchement; 977 } 978 979 function verifEmailBeneficiaire(addressForm, customer) { 980 if (customer != null && (addressForm.fields[14].value || '').toLowerCase() === (customer.email || '').toLowerCase()) { 981 addressForm.alert.message.push("DICO_ERREUR_EMAIL_BENEFICIAIRE_IDENTIQUE_CLIENT"); 982 return true; 983 } 984 return false; 985 } 986 987 factory.addAddressFunction = function addAddressFunction(newAdressForm, adresses, customer){ 988 var deferred = $q.defer(); 989 newAdressForm.alert.message = []; 990 if(!formulaireManager.verifForm(newAdressForm) || chevauchement(newAdressForm, adresses) || verifEmailBeneficiaire(newAdressForm, customer)){ 991 deferred.resolve(false); 992 } else { 993 //store cgv 994 _storeCgv(newAdressForm); 995 var newaddress = _getAdresseFromForm(newAdressForm); 996 if(newaddress && newaddress !== undefined){ 997 if(newaddress.estParrainnage){ 998 _setParrainnageAdresse(deferred,newAdressForm,newaddress); 999 } else { 1000 let customerForm = {}; 1001 customerForm.others={}; 1002 customerForm.fields = _.where(newAdressForm.fields, {origin: "customer"}); 1003 customerForm.csBlockPrincipal = _.where(newAdressForm.fields, {origin: "cs"}); 1004 customerForm.csOptionnal = []; 1005 customerForm.others.codeClient = customer.codeClient; 1006 1007 function _addAdress(){ 1008 TbsWS.call('addaddress','private',newaddress).then( 1009 function(result){ 1010 if(result && result.key === "addaddress"){ 1011 var status = result.value; 1012 if(!status || status === undefined){ 1013 newAdressForm.alert.message.push("DICO_ERREUR_CUSTOMER_REPONSE_INCOHERENTE"); 1014 deferred.resolve(false); 1015 } else { 1016 status = status.replace(/"/g,''); 1017 if(status == factory.ADDRESS_STATUS_CREATE){ 1018 //reload customer 1019 deferred.resolve(true); 1020 1021 } else { 1022 newAdressForm.alert.message.push("DICO_ERREUR_CUSTOMER_PENDANT_CREATION"); 1023 deferred.resolve(false); 1024 } 1025 } 1026 } else { 1027 deferred.resolve(false); 1028 } 1029 } 1030 ,function(error) { 1031 console.error('Create adresse impossible'); 1032 newAdressForm.alert.message.push("DICO_ERREUR_CUSTOMER_PENDANT_CREATION"); 1033 deferred.resolve(false); 1034 } 1035 ); 1036 } 1037 1038 if(customerForm.fields.length > 0 || customerForm.csBlockPrincipal.length > 0) { 1039 console.log(customerForm.csBlockPrincipal);
1040 let custo = _getCustomerFromForm(customerForm, false, customer); 1041 1042 TbsWS.call('editcustomer/' + cartManager.model.cart.id,'private',custo).then( 1043 function(result){ 1044 if(result && result.key === "editcustomer"){ 1045 var status = result.value; 1046 if(!status || status === undefined){ 1047 newAdressForm.alert.message.push("DICO_ERREUR_CUSTOMER_REPONSE_INCOHERENTE"); 1048 deferred.resolve(false); 1049 } else { 1050 status = status.replace(/"/g,''); 1051 if(status.indexOf(factory.CUSTOMER_STATUS_UPDATE_BURNED) == 0){ 1052 deferred.resolve('logout'); 1053 } else if(status.indexOf(factory.CUSTOMER_STATUS_UPDATE) == 0){ 1054 _addAdress(); 1055 } else if(status == factory.CUSTOMER_STATUS_EXISTS){ 1056 newAdressForm.alert.message.push("DICO_ERREUR_CUSTOMER_CLIENT_EXISTE"); 1057 deferred.resolve(false); 1058 } else { 1059 newAdressForm.alert.message.push("DICO_ERREUR_CUSTOMER_PENDANT_MODIFICATION"); 1060 deferred.resolve(false); 1061 } 1062 } 1063 } else { 1064 deferred.resolve(false); 1065 } 1066 } 1067 ,function(error) { 1068 newAdressForm.alert.message.push("DICO_ERREUR_CUSTOMER_CREATION_IMPOSSIBLE"); 1069 deferred.resolve(false); 1070 } 1071 ); 1072 } else { 1073 _addAdress(); 1074 } 1075 } 1076 } else { 1077 newAdressForm.alert.message.push("DICO_ERREUR_CUSTOMER_PENDANT_CREATION"); 1078 deferred.resolve(false); 1079 } 1080 } 1081 return deferred.promise; 1082 }; 1083 1084 factory.addAccesBeneficiaireFunction = function addAccesBeneficiaireFunction(accesForm) { 1085 var deferred = $q.defer(); 1086 accesForm.alert.message = []; 1087 1088 if(formulaireManager.verifForm(accesForm) == false){ 1089 console.log("erreur"); 1090 return; 1091 } 1092 1093 var accesBeneficiaire = {}, 1094 client = {}; 1095 1096 accesBeneficiaire.refAbonnement = accesForm.refAbonnement; 1097 accesBeneficiaire.email = accesForm.fields[0].value; 1098 1099 _addAccesBeneficiaire(deferred, accesBeneficiaire, client); 1100 1101 function _addAccesBeneficiaire(deferred, accesBeneficiaire){ 1102 TbsWS.call('addaccesbeneficiaire','private', accesBeneficiaire).then( 1103 function(result){ 1104 if (result && result.key === "addaccesbeneficiaire") { 1105 var status = result.value; 1106 if (!status || status === undefined) { 1107 accesForm.alert.message.push("DICO_ERREUR_CUSTOMER_REPONSE_INCOHERENTE"); 1108 deferred.resolve(false); 1109 } else { 1110 status = status.replace(/"/g,''); 1111 if(status == factory.ACCES_BENEFICIAIRE_STATUS_CREATE) { 1112 deferred.resolve(true); 1113 } else if (status == factory.ACCES_BENEFICIAIRE_STATUS_EXISTS) { 1114 accesForm.alert.message.push("DICO_AJOUT_BENEFICIAIRE_EXISTE"); 1115 deferred.resolve(false); 1116 } else { 1117 accesForm.alert.message.push("DICO_ERREUR_AJOUT_BENEFICIAIRE"); 1118 deferred.resolve(false); 1119 } 1120 } 1121 } else { 1122 deferred.resolve(false); 1123 } 1124 } 1125 ,function(error) { 1126 console.error('Add acces impossible'); 1127 accesForm.alert.message.push("DICO_ERREUR_CUSTOMER_PENDANT_CREATION"); 1128 deferred.resolve(false); 1129 } 1130 ); 1131 } 1132 1133 return deferred.promise; 1134 }; 1135 1136 factory.deleteAccesBeneficiaire = function deleteAccesBeneficiaire(refAbonnement, codeClient) { 1137 var deferred = $q.defer(); 1138 TbsWS.call('deleteaccesbeneficiaire/' + refAbonnement + '/codeClient/' + codeClient,'private').then( 1139 function(result){ 1140 if(result && result.key === "deleteaccesbeneficiaire"){ 1141 var status = result.value; 1142 if(!status || status === undefined){ 1143 deferred.resolve(false); 1144 } else { 1145 status = status.replace(/"/g,''); 1146 if(status == factory.ACCES_BENEFICIAIRE_STATUS_DELETE){ 1147 deferred.resolve(true); 1148 } else { 1149 deferred.resolve(false); 1150 } 1151 } 1152 } else { 1153 deferred.resolve(false); 1154 } 1155 } 1156 ,function(error) { 1157 console.error(error); 1158 deferred.resolve(false); 1159 } 1160 ); 1161 return deferred.promise; 1162 }; 1163 1164 factory.editCustomerFunction = function editCustomerFunction(userForm){ 1165 var deferred = $q.defer(); 1166 userForm.alert.message = []; 1167 userForm.alert.messageCustom = ""; 1168 userForm.info.message = []; 1169 if(!formulaireManager.verifForm(userForm)){ 1170 deferred.resolve(false); 1171 } else {
1172 var customer = _getCustomerFromForm(userForm,false); 1173 if(customer && customer !== undefined){ 1174 TbsWS.call('editcustomer/' + cartManager.model.cart.id,'private',customer).then( 1175 function(result){ 1176 if(result && result.key === "editcustomer"){ 1177 var status = result.value; 1178 if(!status || status === undefined){ 1179 userForm.alert.message.push("DICO_ERREUR_CUSTOMER_REPONSE_INCOHERENTE"); 1180 deferred.resolve(false); 1181 } else { 1182 status = status.replace(/"/g,''); 1183 if(status.indexOf(factory.CUSTOMER_STATUS_UPDATE_BURNED) == 0){ 1184 deferred.resolve('logout'); 1185 } else if(status.indexOf(factory.CUSTOMER_STATUS_UPDATE) == 0){ 1186 _setOptins(userForm.optins); 1187 deferred.resolve(true); 1188 } else if(status == factory.CUSTOMER_STATUS_EXISTS){ 1189 userForm.alert.message.push("DICO_ERREUR_CUSTOMER_CLIENT_EXISTE"); 1190 deferred.resolve(false); 1191 } else { 1192 if(status.contains(factory.CUSTOMER_STATUS_ERROR+"##")) { 1193 status = status.replace(factory.CUSTOMER_STATUS_ERROR+"##",""); 1194 userForm.alert.messageCustom = status; 1195 } else { 1196 userForm.alert.message.push("DICO_ERREUR_CUSTOMER_PENDANT_MODIFICATION"); 1197 } 1198 deferred.resolve(false); 1199 } 1200 } 1201 } else { 1202 deferred.resolve(false); 1203 } 1204 } 1205 ,function(error) { 1206 userForm.alert.message.push("DICO_ERREUR_CUSTOMER_CREATION_IMPOSSIBLE"); 1207 deferred.resolve(false); 1208 } 1209 ); 1210 } else { 1211 userForm.alert.message.push("DICO_ERREUR_CUSTOMER_CREATION_IMPOSSIBLE"); 1212 deferred.resolve(false); 1213 } 1214 } 1215 return deferred.promise; 1216 }; 1217 1218 factory.signupFunction = function signupFunction(newuserForm){ 1219 let deferred = $q.defer(); 1220 newuserForm.alert.message = []; 1221 newuserForm.info.message = []; 1222 if(!formulaireManager.verifForm(newuserForm)){ 1223 deferred.resolve(false); 1224 } else { 1225 let newcustomer = _getCustomerFromForm(newuserForm,true); 1226 if(newcustomer && newcustomer !== undefined){ 1227 TbsWS.call('createcustomer/' + $rootScope.preferredLanguage,'public',newcustomer).then( 1228 function(result){ 1229 if(result && result.access_token !== undefined){ 1230 //autovalidation + autoconnexion 1231 Auth.dologin(result); 1232 deferred.resolve(2); 1233 googleTagManager.createAccountEvent(factory.getCustomer); 1234 } else if(result && result.key === "validatecustomer"){ 1235 //autovalidation mais pas dautoconnexion processus normal 1236 var status = result.value; 1237 if(!status || status === undefined){ 1238 newuserForm.alert.message.push("DICO_ERREUR_CUSTOMER_REPONSE_INCOHERENTE"); 1239 deferred.resolve(0); 1240 } else { 1241 status = status.replace(/"/g,''); 1242 if(status.indexOf(factory.CUSTOMER_STATUS_CREATE) == 0){ 1243 $rootScope.LINK_ACTIVATE=status.split("_")[1]; 1244 deferred.resolve(3); 1245 googleTagManager.createAccountEvent(factory.getCustomer); 1246 } else if(status == factory.CUSTOMER_STATUS_EXISTS){ 1247 newuserForm.alert.message.push("DICO_ERREUR_CUSTOMER_CLIENT_EXISTE"); 1248 deferred.resolve(0); 1249 } else { 1250 newuserForm.alert.message.push("DICO_ERREUR_CUSTOMER_PENDANT_CREATION"); 1251 deferred.resolve(0); 1252 } 1253 } 1254 1255 } else if(result && result.key === "createcustomer"){ 1256 var status = result.value; 1257 if(!status || status === undefined){ 1258 newuserForm.alert.message.push("DICO_ERREUR_CUSTOMER_REPONSE_INCOHERENT
1258E"); 1259 deferred.resolve(0); 1260 } else { 1261 status = status.replace(/"/g,''); 1262 if(status.indexOf(factory.CUSTOMER_STATUS_CREATE) == 0){ 1263 $rootScope.LINK_ACTIVATE=status.split("_")[1]; 1264 deferred.resolve(1); 1265 googleTagManager.createAccountEvent(factory.getCustomer); 1266 } else if(status == factory.CUSTOMER_STATUS_EXISTS){ 1267 newuserForm.alert.message.push("DICO_ERREUR_CUSTOMER_CLIENT_EXISTE"); 1268 deferred.resolve(0); 1269 } else { 1270 if(status.contains(factory.CUSTOMER_STATUS_ERROR+"##")) { 1271 status = status.replace(factory.CUSTOMER_STATUS_ERROR+"##",""); 1272 if(status.contains(factory.PASSWORD_UNSECURE+"##")) { 1273 status = status.replace(factory.PASSWORD_UNSECURE + "##", ""); 1274 newuserForm.alert.messageCustom = status; 1275 } if(status.contains(factory.PASSWORD_EXPIRED+"##")) { 1276 status = status.replace(factory.PASSWORD_UNSECURE + "##", ""); 1277 newuserForm.alert.messageCustom = status; 1278 } else { 1279 newuserForm.alert.message.push("DICO_ERREUR_CUSTOMER_PENDANT_CREATION"); 1280 } 1281 } else { 1282 newuserForm.alert.message.push("DICO_ERREUR_CUSTOMER_PENDANT_CREATION"); 1283 } 1284 deferred.resolve(0); 1285 } 1286 } 1287 } else { 1288 deferred.resolve(0); 1289 } 1290 } 1291 ,function(error) { 1292 newuserForm.alert.message.push("DICO_ERREUR_CUSTOMER_CREATION_IMPOSSIBLE"); 1293 deferred.resolve(0); 1294 } 1295 ); 1296 } else { 1297 newuserForm.alert.message.push("DICO_ERREUR_CUSTOMER_CREATION_IMPOSSIBLE"); 1298 deferred.resolve(0); 1299 } 1300 } 1301 return deferred.promise; 1302 }; 1303 1304 factory.validateAccount = function validateAccount(codeClient){ 1305 var deferred = $q.defer(); 1306 TbsWS.call('validateaccount/'+ codeClient,'public').then( 1307 function(result){ 1308 if(result && result.key === "validateaccount"){ 1309 //pas dautoconnexion processus normal 1310 var status = result.value; 1311 console.log(status); 1312 if(status === "create"){ 1313 deferred.resolve("autoconnexion"); 1314 } else if(status === "exists") { 1315 deferred.resolve(status); 1316 } else { 1317 deferred.resolve("error"); 1318 } 1319 } else { 1320 deferred.resolve("error"); 1321 } 1322 } 1323 ,function(error) { 1324 console.error(error); 1325 deferred.reject("error"); 1326 } 1327 ); 1328 1329 return deferred.promise; 1330 }; 1331 1332 factory.validateCustomer = function validateCustomer(idValidation){ 1333 var deferred = $q.defer(); 1334 TbsWS.call('validatecustomer/'+ idValidation,'public').then( 1335 function(result){ 1336 if(result && result.access_token !== undefined){ 1337 //autoconnexion 1338 Auth.dologin(result); 1339 deferred.resolve("autoconnexion"); 1340 } else if(result && result.key === "validatecustomer"){ 1341 //pas dautoconnexion processus normal 1342 var status = result.value; 1343 if(!status || status === undefined){ 1344 deferred.resolve("error"); 1345 } else { 1346 status = status.replace(/"/g,''); 1347 deferred.resolve(status); 1348 } 1349 } else { 1350 deferred.resolve("error"); 1351 } 1352 } 1353 ,function(error) { 1354 console.error(error); 1355 deferred.reject("error"); 1356 } 1357 ); 1358 1359 return deferred.promise; 1360 }; 1361 1362 factory.afterLogin = function afterLogin(success){ 1363 console.log(success); 1364 if(success == 'logout') { 1365 $rootScope.signin.resetInProgress(); 1366 $rootScope.goPage(undefined,'common/logout'); 1367 } else if(success.startsWith(factory.LOGIN_OK)){ 1368 //SUCCESS 1369 $rootScope.signin.resetInProgress(); 1370 if($rootScope.signin.fromBasket){ 1371 cartManager.setStartTunnelAchat(false); 1372 if(commonConfig.forceRedirectToHomeAfterConnexion) { 1373 $rootScope.goPage(); 1374 } else { 1375 if(commonConfig.forceAskInfoCustomerInfoOnDelivery) { 1376 $rootScope.goPageCart(); 1377 } else { 1378 $rootScope.goPage(undefined,'common/delivery'); 1379 } 1380 } 1381 } else { 1382 if(commonConfig.forceRedirectToHomeAfterConnexion) { 1383 $rootScope.goPage(); 1384 } else { 1385 $rootScope.goPage(undefined,'common/profil/init'); 1386 } 1387 } 1388 } else if(success.startsWith(factory.LOGIN)) { 1389 factory.routingSpecific(success); 1390 } 1391 }; 1392 1393 factory.checkSigninFunction = function checkSigninFunction(existuserForm){ 1394 if($rootScope.signin.inProgress){ 1395 $rootScope.signin.login = formulaireManager.getDefaultValue(_.findWhere(existuserForm.fields, {name: "email"}),""); 1396 $rootScope.signin.password = formulaireManager.getDefaultValue(_.findWhere(existuserForm.fields, {name: "password"}),""); 1397 } 1398 return formulaireManager.verifForm(existuserForm); 1399 }; 1400 1401 factory.signinFunction = function signinFunction(existuserForm){ 1402 var deferred = $q.defer(), 1403 oldMontantTtc, 1404 oldLength, 1405 user = {}; 1406 1407 existuserForm.alert.message = []; 1408 if(formulaireManager.verifForm(existuserForm)){ 1409 user.login = {}; 1410 user.login.property = "email"; 1411 user.login.value = formulaireManager.getDefaultValue(_.findWhere(existuserForm.fields, {name: "email"}),""); 1412 user.password = formulaireManager.getDefaultValue(_.findWhere(existuserForm.fields, {name: "password"}),""); 1413 1414 if(existuserForm.others.captcha != undefined && existuserForm.others.captcha.required){ 1415 user.captcha = vcRecaptchaService.getResponse(existuserForm.others.captcha.widgetId); 1416 } 1417 user.scope = "private"; 1418 1419 $rootScope.signin.login = user.login.value; 1420 $rootScope.signin.password = user.password; 1421 1422 oldLength = cartManager.model.cart.lignes.length; 1423 oldMontantTtc = cartManager.model.cart.totalTtc; 1424 Auth.login(user).then( 1425 function(customer){ 1426 if (commonConfig.oAuthExterne != null && commonConfig.oAuthExterne.urlLogin != null) { 1427 customer.info = factory.LOGIN_OK; 1428 } 1429 1430 cartManager.refreshCart().then(function () { 1431 TbsWS.call('setcustomertocart/' + cartManager.model.cart.id,'private').then( 1432 function(result){ 1433 if(result && result.key === "setcustomertocart"){
1434 var status = result.value; 1435 cartManager.loadCartWaiting().then( 1436 function(status){ 1437 if (!cartManager.lastStatusReservedForNew() && ! cartManager.lastStatusPaysInterdits()) { 1438 if(oldLength == 0 && cartManager.model.cart.lignes.length > 0){ 1439 $rootScope.openModalInformation('DICO_INFORMATION','DICO_CUSTOMER_DERNIER_PANIER_EST_CHARGE'); 1440 } else if(oldLength > 0 && oldMontantTtc != cartManager.model.cart.totalTtc){ 1441 $rootScope.openModalInformation('DICO_INFORMATION','DICO_CUSTOMER_CONTENU_PANIER_A_CHANGE_APRES_CONNEXION'); 1442 } 1443 } 1444 $rootScope.signin.login = ""; 1445 $rootScope.signin.password = ""; 1446 deferred.resolve(customer.info); 1447 } 1448 ); 1449 } else { 1450 deferred.resolve(false); 1451 } 1452 } 1453 ,function(error) { 1454 deferred.resolve('logout'); 1455 } 1456 ); 1457 }); 1458 }, 1459 function(response){ 1460 if(response && response.error !== undefined && response.error_description !== undefined && response.error_description.startsWith(factory.LOGIN)){ 1461 if(response.error_description.startsWith(factory.LOGIN_PASSWORD_EXPIRED)) { 1462 $rootScope.signin.error = response; 1463 $rootScope.signin.error.error_description = 'DICO_PASSWORD_EXPIRED_SEND_EMAIL'; 1464 _setResponseLogin(response,existuserForm); 1465 } 1466 deferred.resolve(response.error_description); 1467 } else { 1468 _setResponseLogin(response,existuserForm); 1469 deferred.resolve(false); 1470 } 1471 } 1472 ); 1473 1474 } else { 1475 deferred.resolve(false); 1476 } 1477 return deferred.promise; 1478 }; 1479 1480 function _setResponseLogin(response,myForm){ 1481 if(response !== undefined){ 1482 if(myForm.others.captcha !== undefined){ 1483 if(response.error == "Captcha Required" || response.error == "Captcha Incorrect"){ 1484 formulaireManager.resetCaptcha(myForm.others.captcha); 1485 myForm.others.captcha.required = true; 1486 } else { 1487 myForm.others.captcha.required = false; 1488 } 1489 } 1490 myForm.alert.message.push(response.error_description); 1491 } 1492 } 1493 1494 factory.getExistUserForm = function getExistUserForm(withcaptcha){ 1495 var existuser = {},ob={}; 1496 existuser.alert = {}; 1497 existuser.alert.message = []; 1498 existuser.fields = []; 1499 existuser.others = {}; 1500 1501 if(withcaptcha){ 1502 formulaireManager.createCaptcha(existuser, false,"existuser"); 1503 } 1504 1505 _getModeConnexion(existuser.fields); 1506 1507 if($rootScope.signin.inProgress){ 1508 _setResponseLogin($rootScope.signin.error,existuser); 1509 factory.checkSigninFunction(existuser); 1510 } 1511 1512 $rootScope.signin.resetInProgress(); 1513 1514 return existuser; 1515 }; 1516 1517 factory.verifValiditeAdresse = function verifValiditeAdresse(adresse){ 1518 var deferred = $q.defer(); 1519 factory.getAddressForm(undefined,adresse,false,adresse.estParrainnage, false, false, undefined, false, 'delivery').then( 1520 function(addressForm){ 1521 console.log(addressForm); 1522 deferred.resolve(formulaireManager.verifForm(addressForm)); 1523 }, 1524 function(error){ 1525 deferred.resolve(false); 1526 } 1527 ); 1528 return deferred.promise; 1529 }; 1530 1531 factory.verifAddressFunction = function verifAddressFunction(newAddressForm){ 1532 return formulaireManager.verifForm(newAddressForm); 1533 }; 1534 1535 factory.getNewAddressForm = function getNewAddressForm(newaddressForm,creation,isGift,temporaryAddress,customer,forceDisplayAdresse, origin){ 1536 return factory.getAddressForm(newaddressForm,dataManager.getAddressData(),creation,isGift,temporaryAddress, false, customer, forceDisplayAdresse, (origin === undefined ? 'profil' : origin)); 1537 }; 1538 1539 factory.getAddressForm = function getAddressForm(newaddressForm, adresse, creation, isGift, tryDisplayTemporaryAddress, onlyRequiredAndEmpty, customer, forceDisplayAdresse, origin){ 1540 if(!_.contains(['profil','cart','delivery'],origin)) { 1541 console.error("Origine inconnu : "+origin); 1542 } 1543 1544 if(adresse.estParrainnage === null || adresse.estParrainnage === undefined)adresse.estParrainnage=false; 1545 //console.log("isGift :"+(isGift?"true":"false")); 1546 //console.log("creation :"+(creation?"true":"false")); 1547 1548 if(adresse !== undefined && creation){ 1549 adresse=dataManager.getAddressData(adresse); 1550 } 1551 let deferred = $q.defer(), 1552 pays=[], 1553 civilite = {}, 1554 csMap = {}, 1555 paysLoad = false, 1556 civiliteLoad = false, 1557 csLoad = false; 1558 1559 if(!newaddressForm && newaddressForm === undefined){ 1560 newaddressForm = {}; 1561 } 1562 newaddressForm.origin = origin; 1563 newaddressForm.others = {}; 1564 newaddressForm.others.refAdresse = adresse.refAdresse; 1565 newaddressForm.others.codeClient = adresse.codeClient; 1566 if(isGift){ 1567 newaddressForm.others.estParrainnage = true; 1568 newaddressForm.others.estLivraison = false; 1569 newaddressForm.others.estPrincipale = false; 1570 } else if(adresse.estLivraison === undefined){ 1571 newaddressForm.others.estLivraison = true; 1572 newaddressForm.others.estPrincipale = false; 1573 newaddressForm.others.estParrainnage = false; 1574 } else { 1575 newaddressForm.others.estParrainnage = adresse.estParrainnage; 1576 newaddressForm.others.estLivraison = adresse.estLivraison; 1577 newaddressForm.others.estPrincipale = adresse.estPrincipale; 1578 } 1579 newaddressForm.fields = []; 1580 1581 if(customer !== undefined){ 1582 _getListCs(customer, creation).then( 1583 function(map){ 1584 csMap = map; 1585 csLoad = true; 1586 _tryEndAddress(newaddressForm); 1587 } 1588 ); 1589 } else { 1590 csLoad = true; 1591 } 1592 1593 TbsWS.getCountries().then( 1594 function(listpays){ 1595 pays = listpays; 1596 paysLoad=true; 1597 _tryEndAddress(newaddressForm); 1598 } 1599 ,function(error) { 1600 console.error(error); 1601 deferred.reject({}); 1602 } 1603 ); 1604 1605 TbsWS.call('getlistcivilites/'+$rootScope.preferredLanguage,'public').then( 1606 function(listcivilites){ 1607 var field = {}, 1608 ar = [], 1609 ob={}, 1610 defaultVal="", 1611 defaultIndex=commonConfig.defaultIndexCivilite, 1612 p,cs; 1613 1614 defaultVal=""; 1615 if(adresse.civilite !== undefined){ 1616 defaultVal = adresse.civilite; 1617 } 1618 1619 1620 ar = []; 1621 for(cs in listcivilites["paramCs2Collection"]){ 1622 ob = {}; 1623 ob.value = listcivilites["paramCs2Collection"][cs].libelleCs; 1624 ob.label = listcivilites["paramCs2Collection"][cs].libelleCs; 1625 if (defaultVal !== null && ob.label !== null) { 1626 if(defaultVal.toUpperCase() === ob.label.toUpperCase()){ 1627 defaultIndex = ar.length; 1628 } 1629 } 1630 ar.push(ob); 1631 } 1632 1633 civilite.key = listcivilites.refCs; 1634 civilite.typeCs = listcivilites.typeCs; 1635 formulaireManager.createSelect("civilite",civilite,"DICO_CUSTOMER_CIVILITES",ar,(commonConfig.civiliteRequired?true:false),defaultIndex); 1636 1637 civiliteLoad=true; 1638 _tryEndAddress(newaddressForm); 1639 } 1640 ,function(error) { 1641 console.error(error); 1642 deferred.reject({}); 1643 } 1644 ); 1645 1646 function _tryEndAddress(newaddressForm){ 1647 1648 if(paysLoad && civiliteLoad && csLoad){ 1649 1650 var ob,types=[]; 1651 if(!creation){ 1652 ob = {}; 1653 ob.value = "delivery"; 1654 ob.label = "DICO_PROFILE_ADRESSE_LIVRAISON"; 1655 types.push(ob); 1656 1657 ob = {}; 1658 ob.value = "billing"; 1659 ob.label = "DICO_PROFILE_ADRESSE_FACTURATION"; 1660 types.push(ob); 1661 1662 /*ob = {}; 1663 formulaireManager.createSelect("type",ob,"DICO_CUSTOMER_TYPE_ADRESSE", types,true,_.indexOf(_.pluck(types, 'value'), (adresse.estLivraison?"delivery":"billing"))); 1664 ob.translated = true; 1665 newaddressForm.fields.push(ob);*/ 1666 } 1667 1668 if(adresse.titreAdresse===null||adresse.titreAdresse===undefined){ 1669 adresse.titreAdresse = $filter('translate')('DICO_TITRE_ADDRESS_DEFAULT_VALUE'); 1670 } 1671 1672 if(!creation){ 1673 if(isGift){ 1674 ob = {}; 1675 ob.type = "fake"; 1676 newaddressForm.fields.push(ob); 1677 } else { 1678 if(commonConfig.forceAskInfoCustomerInfoOnDelivery && adresse.estPrincipale){ 1679 ob = {}; 1680 ob.type = "fake"; 1681 ob.name = "title"; 1682 ob.value = adresse.titreAdresse; 1683 newaddressForm.fields.push(ob); 1684 } else { 1685 ob = {}; 1686 formulaireManager.createTextField("title",ob,(adresse.titreAdresse!==undefined?adresse.titreAdresse:""),"DICO_CUSTOMER_TITRE_ADDRESS",true,"text",0,40); 1687 newaddressForm.fields.push(ob); 1688 } 1689 } 1690 1691 ob = {}; 1692 formulaireManager.createTextField("company",ob,(adresse.societe!==undefined?adresse.societe:""),"DICO_CUSTOMER_SOCIETE",false,"text",0,40); 1693 newaddressForm.fields.push(ob); 1694 } 1695 1696 civilite.translated = true; 1697 newaddressForm.fields.push(civilite); 1698 1699 ob = {}; 1700 formulaireManager.createTextField("name",ob,(adresse.nom!==undefined?adresse.nom:""),"DICO_CUSTOMER_NOM",true,"text",0,40); 1701 newaddressForm.fields.push(ob); 1702 1703 ob = {}; 1704 formulaireManager.createTextField("firstname",ob,(adresse.prenom!==undefined?adresse.prenom:""),"DICO_CUSTOMER_PRENOM", (commonConfig.firstNameRequired?true:false),"text",0,40); 1705 newaddressForm.fields.push(ob); 1706 1707 if(creation){ 1708 ob = {}; 1709 formulaireManager.createTextField("company",ob,(adresse.societe!==undefined?adresse.societe:""),"DICO_CUSTOMER_SOCIETE",(commonConfig.companyRequired?true:false),"text",0,40); 1710 newaddressForm.fields.push(ob); 1711 } 1712 1713 //ob = {}; 1714 //formulaireManager.createTextField("address4",ob,(adresse.adresse4!==undefined?adresse.adresse4:""),"DICO_CUSTOMER_COMPLEMENT_ADRESSE",false,"text",0,38); 1715 //newaddressForm.fields.push(ob); 1716 1717 ob = {}; 1718 formulaireManager.createTextField("address1",ob,(adresse.adresse1!==undefined?adresse.adresse1:""),"DICO_CUSTOMER_COMPLEMENT_NOM",false,"text",0,38); 1719 newaddressForm.fields.push(ob); 1720 1721 ob = {}; 1722 formulaireManager.createTextField("address2",ob,(adresse.adresse2!==undefined?adresse.adresse2:""),"DICO_CUSTOMER_ADRESSE",true,"text",0,38); 1723 newaddressForm.fields.push(ob); 1724 1725 ob = {}; 1726 formulaireManager.createTextField("address3",ob,(adresse.adresse3!==undefined?adresse.adresse3:""),"DICO_CUSTOMER_COMPLEMENT_ADRESSE",false,"text",0,38); 1727 newaddressForm.fields.push(ob); 1728 1729 ob = {}; 1730 formulaireManager.createTextField("codepostal",ob,(adresse.codepostal!==undefined?adresse.codepostal:""),"DICO_CUSTOMER_CODEPOSTAL",true,"text",5,5); 1731 newaddressForm.fields.push(ob); 1732 1733 /*ob = {}; 1734 formulaireManager.createTextField("country",ob,"Bretagne","Country",true); 1735 newaddressForm.fields.push(ob);*/ 1736 1737 ob = {}; 1738 formulaireManager.createTextField("city",ob,(adresse.ville!==undefined?adresse.ville:""),"DICO_CUSTOMER_VILLE",true,"text",0,34); 1739 newaddressForm.fields.push(ob); 1740 1741 ob = {}; 1742 formulaireManager.createSelect("state",ob,"DICO_CUSTOMER_PAYS",pays,true,_.indexOf(_.pluck(_.pluck(pays, 'value'), 'codeIso'), (adresse.codeIso!==undefined?adresse.codeIso:commonConfig.codeIsoDefaut))); 1743 newaddressForm.fields.push(ob); 1744 1745 ob = {}; 1746 formulaireManager.createFixPhone("phonenumber",ob,(adresse.telephone!==undefined?adresse.telephone:""),(commonConfig.callnumberAtLeastOn?"DICO_CUSTOMER_TELEPHONE_REQUIS":"DICO_CUSTOMER_TELEPHONE"),false,"text",factory.MIN_LENGTH_PHONENUMBER,factory.MAX_LENGTH_PHONENUMBER); 1747 newaddressForm.fields.push(ob); 1748 1749 if(commonConfig.numberTelPortableOff){ 1750 ob = {}; 1751 formulaireManager.createMobilPhone("mobilphonenumber",ob,(adresse.portable!==undefined?adresse.portable:""),(commonConfig.callnumberAtLeastOn?"DICO_CUSTOMER_PORTABLE_REQUIS":"DICO_CUSTOMER_PORTABLE"),false,"text",factory.MIN_LENGTH_PHONENUMBER,factory.MAX_LENGTH_PHONENUMBER); 1752 newaddressForm.fields.push(ob); 1753 } else { 1754 ob = {}; 1755 ob.type = "fake"; 1756 newaddressForm.fields.push(ob); 1757 } 1758 1759 if(commonConfig.numberFaxOff){ 1760 ob = {}; 1761 formulaireManager.createFaxPhone("faxnumber",ob,(adresse.telecopie!==undefined?adresse.telecopie:""),"DICO_CUSTOMER_FAX",false,"text",factory.MIN_LENGTH_PHONENUMBER,factory.MAX_LENGTH_PHONENUMBER); 1762 newaddressForm.fields.push(ob); 1763 } else { 1764 ob = {}; 1765 ob.type = "fake"; 1766 newaddressForm.fields.push(ob); 1767 } 1768 1769 if(isGift){ 1770 ob = {}; 1771 formulaireManager.createEmail("email",ob,(adresse.email!==undefined?adresse.email:""),"DICO_CUSTOMER_EMAIL_BENEFICIAIRE",commonConfig.emailBeneficiaireRequired,"text", 0, factory.MAX_LENGTH_EMAIL); 1772 newaddressForm.fields.push(ob); 1773 1774 ob = {}; 1775 formulaireManager.createTextField("envoieemail",ob,(adresse.envoieEmailBeneficiaire!==undefined?adresse.envoieEmailBeneficiaire:false),"DICO_CUSTOMER_INFORMER_BENEFICIAIRE_DU_CADEAU", false,"checkbox"); 1776 newaddressForm.fields.push(ob); 1777 } else { 1778 ob = {}; 1779 ob.type = "fake"; 1780 newaddressForm.fields.push(ob); 1781 1782 ob = {}; 1783 ob.type = "fake"; 1784 newaddressForm.fields.push(ob); 1785 } 1786 let isTemporaryAdress = (adresse.estTemporaire !== undefined && adresse.estTemporaire) ? true : false; 1787 if(adresse.estTemporaire === undefined) { 1788 isTemporaryAdress = adresse.estLivraison == null || adresse.estLivraison && !adresse.estPrincipale; 1789 } else { 1790 isTemporaryAdress = adresse.estTemporaire; 1791 } 1792 1793 if (tryDisplayTemporaryAddress && isTemporaryAdress) { 1794 ob = {}; 1795 formulaireManager.createDateField("datedebut",ob,(adresse.dateDebut!=null?new Date(adresse.dateDebut):''),"DICO_CUSTOMER_DATEDEBUT",false,"date"); 1796 newaddressForm.fields.push(ob); 1797 1798 ob = {}; 1799 formulaireManager.createDateField("datefin",ob,(adresse.dateFin!=null?new Date(adresse.dateFin):''),"DICO_CUSTOMER_DATEFIN",fal
1799se,"date"); 1800 newaddressForm.fields.push(ob); 1801 } else { 1802 ob = {}; 1803 ob.type = "fake"; 1804 newaddressForm.fields.push(ob); 1805 1806 ob = {}; 1807 ob.type = "fake"; 1808 newaddressForm.fields.push(ob); 1809 } 1810 1811 if(commonConfig.forceAskInfoCustomerInfoOnDelivery) { 1812 newaddressForm.withProPart = true; 1813 //newaddressForm.withProPart = isGift || creation; 1814 1815 /* JIRA ABOWEB-11194 - suppression de la rubrique codeNii */ 1816 /* JIRA ABOWEB- - gestion affichage codeNii en fonction d'une config json */ 1817 ob = {}; 1818 formulaireManager.createTextField("codenii",ob,(customer !== undefined && customer.codeNii !== null && customer.codeNii !== undefined?customer.codeNii:""),"DICO_CUSTOMER_CODENII",false,"text",0,40); 1819 ob.origin = "customer"; 1820 if(commonConfig.addCodeNiiInAddressFormPro) { 1821 newaddressForm.fields.push(ob); 1822 } 1823 1824 newaddressForm.isPro = factory.addressIsPro(adresse); 1825 newaddressForm.withAdress = cartManager.addressIsRequired() || (forceDisplayAdresse !== undefined && forceDisplayAdresse) || newaddressForm.isPro || isGift; 1826 console.log("isPro="+newaddressForm.isPro); 1827 console.log("withAdress="+newaddressForm.withAdress); 1828 if(newaddressForm.withAdress === false){ 1829 //Si adresse particulier et 100% numerique, ces informations sont tout le temps obligatoire 1830 let listFieldAlwaysRequired = ["name","firstname","phonenumber","state"]; 1831 //let listFieldAlwaysRequired = commonConfig.fieldsNumericAdressRequired; 1832 1833 //Si cest un formulaire sans le bloc adresse, juste du complement, on rend non obligatoire les champs adresses pour passer le controle du formulaire 1834 for(var i=0;i<newaddressForm.fields.length;i++){ 1835 ob = newaddressForm.fields[i]; 1836 if(!_.contains(listFieldAlwaysRequired,ob.name)) { 1837 ob.name = "disabled-"+ob.name; 1838 ob.required = false; 1839 ob.type = "fake"; 1840 } 1841 } 1842 } 1843 1844 if(isGift === false && ((forceDisplayAdresse !==undefined && forceDisplayAdresse === false) || forceDisplayAdresse === undefined)) { 1845 console.log(csMap); 1846 1847 //Ajout des cs sur le bloc principal 1848 if(csMap !== undefined && csMap.csBlockPrincipal !== undefined) { 1849 for(var i=0;i<csMap.csBlockPrincipal.length;i++){ 1850 ob = csMap.csBlockPrincipal[i]; 1851 ob.origin = "cs"; 1852 ob.cgv = false; 1853 newaddressForm.fields.push(ob); 1854 } 1855 } 1856 1857 //Ajout des cs sur le bloc optionnal 1858 if(csMap !== undefined && csMap.csOptionnal !== undefined) { 1859 for(var i=0;i<csMap.csOptionnal.length;i++){ 1860 ob = csMap.csOptionnal[i]; 1861 ob.origin = "cs"; 1862 ob.cgv = false; 1863 newaddressForm.fields.push(ob); 1864 } 1865 } 1866 } 1867 1868 //Ajout de fake 1869 /*for(var i=0;i< 15;i++){ 1870 ob = {}; 1871 ob.name = "Coucou"+i; 1872 ob.required = true; 1873 ob.origin = "cs"; 1874 ob.type = "text"; 1875 newaddressForm.fields.push(ob); 1876 }*/ 1877 1878 newaddressForm.reloadTypeCustomer = function reloadTypeCustomer(state){ 1879 newaddressForm.isPro = state; 1880 newaddressForm.onlyTel = commonConfig.onlyTelephonOnAdresseForm; 1881 if(newaddressForm.isPro){ 1882 ob = _.findWhere(newaddressForm.fields, {name: "company"}); 1883 if(ob !== undefined) { 1884 ob.required = false; 1885 } 1886 ob = _.findWhere(newaddressForm.fields, {name: "codenii"}); 1887 if(ob !== undefined) { 1888 ob.required = false; 1889 } 1890 ob = _.findWhere(newaddressForm.fields, {name: "civilite"}); 1891 if(ob !== undefined) { 1892 ob.required = true; 1893 } 1894 ob = _.findWhere(newaddressForm.fields, {name: "name"}); 1895 if(ob !== undefined) { 1896 ob.required = true; 1897 } 1898 ob = _.findWhere(newaddressForm.fields, {name: "firstname"}); 1899 if(ob !== undefined) { 1900 ob.required = true; 1901 } 1902 ob = _.findWhere(newaddressForm.fields, {name: "phonenumber"}); 1903 if(ob !== undefined) { 1904 ob.required = commonConfig.callnumberAtLeastOn? true : false; 1905 } 1906 } else { 1907 ob = _.findWhere(newaddressForm.fields, {name: "company"}); 1908 if(ob !== undefined) { 1909 ob.required = false; 1910 } 1911 ob = _.findWhere(newaddressForm.fields, {name: "codenii"});
1912 if(ob !== undefined) { 1913 ob.required = false; 1914 } 1915 ob = _.findWhere(newaddressForm.fields, {name: "civilite"}); 1916 if(ob !== undefined) { 1917 ob.required = false; 1918 } 1919 ob = _.findWhere(newaddressForm.fields, {name: "name"}); 1920 if(ob !== undefined) { 1921 ob.required = true; 1922 } 1923 ob = _.findWhere(newaddressForm.fields, {name: "firstname"}); 1924 if(ob !== undefined) { 1925 ob.required = true; 1926 } 1927 ob = _.findWhere(newaddressForm.fields, {name: "phonenumber"}); 1928 if(ob !== undefined) { 1929 ob.required = commonConfig.callnumberAtLeastOn? true : false; 1930 } 1931 1932 } 1933 } 1934 newaddressForm.reloadTypeCustomer(newaddressForm.isPro); 1935 1936 } else { 1937 newaddressForm.withAdress = true; 1938 newaddressForm.withProPart = false; 1939 } 1940 1941 if(onlyRequiredAndEmpty !== undefined && onlyRequiredAndEmpty) { 1942 newaddressForm.fields = _.filter(newaddressForm.fields, function(ob){ 1943 if(ob.type === "checkbox") { 1944 return ob.required && ob.value === false; 1945 } else { 1946 return ob.required && (ob.value === '' || ob.value === null); 1947 } 1948 } 1949 ); 1950 } 1951 1952 deferred.resolve(newaddressForm); 1953 } 1954 } 1955 1956 return deferred.promise; 1957 }; 1958 1959 factory.getAccesForm = function getAccesForm(accesForm) { 1960 let deferred = $q.defer(), 1961 ob = {}; 1962 1963 formulaireManager.createEmail("email", ob, "", 'DICO_EMAIL', true, "text", 0, factory.MAX_LENGTH_EMAIL); 1964 accesForm.fields.push(ob); 1965 1966 deferred.resolve(accesForm); 1967 return deferred.promise; 1968 }; 1969 1970 factory.addressIsPro = function addressIsPro(adresse){ 1971 return !(adresse.societe === undefined || adresse.societe === "" || adresse.societe === null) 1972 } 1973 1974 factory.getBuildUserForm = function getBuildUserForm(){ 1975 let deferred = $q.defer(), 1976 newuserForm = {}; 1977 1978 newuserForm.alert = {}; 1979 newuserForm.alert.message = []; 1980 newuserForm.info = {}; 1981 newuserForm.info.message = []; 1982 newuserForm.others = {}; 1983 newuserForm.csBlockPrincipal = []; 1984 newuserForm.fields = []; 1985 1986 _tryEndCustomer(deferred, newuserForm, true, {}, false); 1987 1988 return deferred.promise; 1989 } 1990 1991 function _getListCs(customer, creation){ 1992 let deferred = $q.defer(); 1993 1994 TbsWS.call('getfieldscustomer/'+$rootScope.preferredLanguage,'public').then( 1995 function(listcs){ 1996 let csMap = {} 1997 csMap.csBlockPrincipal = []; 1998 csMap.csOptionnal = []; 1999 let field = {}, 2000 ar = [], 2001 ob={}, 2002 defaultVal="", 2003 defaultIndex=-1, 2004 p,cs,defaultOb; 2005 2006 for(p in listcs){ 2007 if(listcs[p].typeCs !== 'F') { 2008 field = {}; 2009 2010 defaultVal=""; 2011 defaultIndex=-1; 2012 if(customer.listWCS !== undefined && customer.listWCS.length > 0){ 2013 ob = _.findWhere(customer.listWCS, {keyCS: listcs[p].refCs}); 2014 if(ob !== undefined){ 2015 defaultVal = ob.value; 2016 field.refInterneCS = ob.refInterneCS; 2017 } 2018 } 2019 2020 //TEXTFIELD 2021 if(listcs[p].typeSaisie == "1"){ 2022 field.key = listcs[p].refCs; 2023 field.typeCs = listcs[p].typeCs; 2024 field.typeSaisie = listcs[p].typeSaisie; 2025 if (field.typeCs === 'D') { 2026 formulaireManager.createDateField("",field,defaultVal,listcs[p].libelleCs,listcs[p].estObligatoire); 2027 if (field.value != null && field.value != '') { 2028 field.value = new Date(field.value); 2029 } 2030 } else { 2031 formulaireManager.createTextField("",field,defaultVal,listcs[p].libelleCs,listcs[p].estObligatoire); 2032 } 2033 field.editable = !listcs[p].estLectureSeule; 2034 } 2035 //SELECT 2036 else if(listcs[p].typeSaisie == "2") 2037 { 2038 ar = []; 2039 defaultOb = _.findWhere(commonConfig.defaultcsvalues, {refCs: listcs[p].refCs}); 2040 for(cs in listcs[p]["paramCs2Collection"]){ 2041 ob = {}; 2042 ob.value = listcs[p]["paramCs2Collection"][cs].refCs2; 2043 ob.label = listcs[p]["paramCs2Collection"][cs].libelleCs; 2044 if(defaultVal === ob.label){ 2045 defaultIndex = ar.length; 2046 ar.push(ob); 2047 } else if(defaultIndex == -1 && defaultOb !== undefined && defaultOb.refCs2 === ob.value){ 2048 //Si on est sur un defaut forcé par le paramétrage, on l'ajoute au début de la liste 2049 defaultIndex = -1; 2050 ar.unshift(ob); 2051 } else { 2052 ar.push(ob); 2053 } 2054 } 2055 field.key = listcs[p].refCs; 2056 field.typeCs = listcs[p].typeCs; 2057 field.typeSaisie = listcs[p].typeSaisie; 2058 formulaireManager.createSelect("",field,listcs[p].libelleCs,ar,listcs[p].estObligatoire,defaultIndex); 2059 }
2060 //CASE A COCHER 2061 else if(listcs[p].typeSaisie == "3"){ 2062 field.key = listcs[p].refCs; 2063 field.typeCs = listcs[p].typeCs; 2064 field.typeSaisie = listcs[p].typeSaisie; 2065 formulaireManager.createCheckbox("",field,(defaultVal=='true'?true:false),listcs[p].libelleCs,listcs[p].estObligatoire); 2066 } 2067 if(field.key !== undefined && ((creation == true && listcs[p].estLectureSeule == false) || creation == false)){ 2068 field.estDansBlockPrincipal = listcs[p].estDansBlockPrincipal; 2069 if(listcs[p].estObligatoire || listcs[p].estDansBlockPrincipal){ 2070 csMap.csBlockPrincipal.push(field); 2071 } else { 2072 csMap.csOptionnal.push(field); 2073 } 2074 } 2075 } 2076 } 2077 2078 let formulaireconf = commonConfig.formulaireconf["adresse"]; 2079 //Gestion des CS surchargés 2080 if(formulaireconf !== undefined && formulaireconf.length > 0){ 2081 for(let i=0;i<formulaireconf.length;i++){ 2082 let param = formulaireconf[i]; 2083 if(param !== undefined && param.type === "CS"){ 2084 let forigin = _.findWhere(csMap.csBlockPrincipal, {key: param.id}); 2085 let field = completeOrRemove(param, forigin); 2086 if(field !== undefined) { 2087 csMap.csBlockPrincipal = _.without(csMap.csBlockPrincipal, field); 2088 if(field.required || field.estDansBlockPrincipal){ 2089 csMap.csBlockPrincipal.push(field); 2090 } else { 2091 csMap.csOptionnal.push(field); 2092 } 2093 } else if(forigin !== undefined){ 2094 csMap.csBlockPrincipal = _.without(csMap.csBlockPrincipal, forigin); 2095 } 2096 2097 forigin = _.findWhere(csMap.csOptionnal, {key: param.id}); 2098 field = completeOrRemove(param, forigin); 2099 if(field !== undefined) { 2100 csMap.csOptionnal = _.without(csMap.csOptionnal, field); 2101 if(field.required || field.estDansBlockPrincipal){ 2102 csMap.csBlockPrincipal.push(field); 2103 } else { 2104 csMap.csOptionnal.push(field); 2105 } 2106 } else if(forigin !== undefined){ 2107 csMap.csOptionnal = _.without(csMap.csOptionnal, forigin); 2108 } 2109 } 2110 } 2111 } 2112 deferred.resolve(csMap); 2113 } 2114 ); 2115 2116 return deferred.promise; 2117 } 2118 2119 factory.getEditUserForm = function getEditUserForm(customer, creation, onlyRequiredAndEmpty){ 2120 var deferred = $q.defer(), 2121 csLoad=false, 2122 newuserForm = {}; 2123 2124 /*if(!newuserForm && newuserForm === undefined){ 2125 newuserForm = {}; 2126 }*/ 2127 newuserForm.alert = {}; 2128 newuserForm.alert.message = []; 2129 newuserForm.info = {}; 2130 newuserForm.info.message = []; 2131 newuserForm.others = {}; 2132 newuserForm.fields = []; 2133 2134 _getListCs(customer, creation).then( 2135 function(csMap){ 2136 newuserForm.csBlockPrincipal = csMap.csBlockPrincipal; 2137 newuserForm.csOptionnal = csMap.csOptionnal; 2138 _tryEndCustomer(deferred, newuserForm, creation, customer, onlyRequiredAndEmpty); 2139 } 2140 ); 2141 2142 if(creation){ 2143 newuserForm.others.acceptterms = {}; 2144 newuserForm.others.acceptterms.required = true; 2145 newuserForm.others.acceptterms.value = (customer.acceptterms!==undefined?customer.acceptterms:false); 2146 newuserForm.others.acceptterms.error = false; 2147 2148 formulaireManager.createCaptcha(newuserForm,true,"newuserForm"); 2149 } else { 2150 newuserForm.optins = []; 2151 _getOptins(0,50).then(function (optins) { 2152 newuserForm.optins = optins; 2153 }); 2154 } 2155 if(customer.codeClient && customer.codeClient != undefined){ 2156 newuserForm.others.codeClient = customer.codeClient; 2157 } else { 2158 newuserForm.others.codeClient = 0; 2159 } 2160 2161 return deferred.promise; 2162 }; 2163 2164 function completeOrRemove(param, field){ 2165 if(field !== undefined && param.display){ 2166 if(_.contains(["codeclient", "company"], param.entity)){ 2167 field.editable = false; 2168 field.required = false; 2169 } else { 2170 if(param.readonly !== undefined){ 2171 field.editable = !param.readonly; 2172 } 2173 if(param.required !== undefined){ 2174 field.required = param.required; 2175 } 2176 } 2177 return field; 2178 } 2179 return undefined; 2180 } 2181 2182 2183 2184 function _getFinFormulaireClient(newuserForm, creation, customer){ 2185 2186 let allfields = newuserForm.fields, 2187 index = 0, 2188 ob = {}, 2189 fields = {}, 2190 adressePrincipale, 2191 formulaireconf; 2192 2193 //if(creation == false){ 2194 newuserForm.colonne1 = []; 2195 newuserForm.colonne2 = []; 2196 2197 if(creation){ 2198 formulaireconf = commonConfig.formulaireconf["identification"]; 2199 } else { 2200 formulaireconf = commonConfig.formulaireconf["profil"]; 2201 } 2202 2203 if(formulaireconf === undefined || formulaireconf.length == 0){ 2204 //creation des colonnes 2205 for(let i=0;i<newuserForm.fields.length;i++){ 2206 ob = newuserForm.fields[i]; 2207 ob.tabindex = ++index; 2208 if(i < (newuserForm.fields.length/2)){ 2209 newuserForm.colonne1.push(ob); 2210 } else { 2211 newuserForm.colonne2.push(ob); 2212 } 2213 } 2214 } else { 2215 newuserForm.fields = []; 2216 fields[1]={}; 2217 fields[2]={}; 2218 2219 if(customer.adresses !== undefined && customer.adresses.length > 0){ 2220 for(let i=0;i<customer.adresses.length;i++){ 2221 if(customer.adresses[i].estPrincipale){ 2222 adressePrincipale = customer.adresses[i]; 2223 break; 2224 } 2225 } 2226 2227 if(adressePrincipale !== undefined){ 2228 ob = {}; 2229 formulaireManager.createTextField("company",ob,(adressePrincipale.societe!==undefined?adressePrincipale.societe:""),"DICO_CUSTOMER_SOCIETE",false,"text",0,40); 2230 allfields.push(ob); 2231 } 2232 } 2233 2234 ob = {}; 2235 formulaireManager.createTextField("siret",ob,(customer.siret!==undefined?customer.siret:""),"DICO_CUSTOMER_SIRET",false,"text",0,40); 2236 allfields.push(ob); 2237 2238 ob = {}; 2239 formulaireManager.createTextField("pseudo",ob,(customer.pseudo!==undefined?customer.pseudo:""),"DICO_CUSTOMER_PSEUDO",false,"text",0,80); 2240 allfields.push(ob); 2241 2242 ob = {}; 2243 formulaireManager.createTextField("codenii",ob,(customer.codeNii!==undefined?customer.codeNii:""),"DICO_CUSTOMER_CODENII",false,"text",0,40); 2244 allfields.push(ob); 2245 2246 2247 ob = {}; 2248 formulaireManager.createTextField("codeexterne",ob,(customer.codeExterne!==undefined?customer.codeExterne:""),'DICO_CUSTOMER_CODE_EXTERNE',false); 2249 ob.placeholder = (creation?'DICO_CUSTOMER_CODE_EXTERNE':'DICO_INCONNU'); 2250 ob.editable = false; 2251 allfields.push(ob); 2252 2253 let maxPositionColonne1 = 0; 2254 let maxPositionColonne2 = 0; 2255 2256 for(let i=0;i<formulaireconf.length;i++){ 2257 let param = formulaireconf[i]; 2258 if(param !== undefined && param.display){ 2259 let field = _.findWhere(allfields, {name: param.entity}); 2260 if(field !== undefined){ 2261 if(_.contains(["codeclient", "company"], param.entity)){ 2262 field.editable = false; 2263 field.required = false; 2264 } else { 2265 if(param.readonly !== undefined){ 2266 field.editable = !param.readonly; 2267 } 2268 if(param.required !== undefined){ 2269 field.required = param.required; 2270 } 2271 } 2272 2273 fields[param.colonne][param.position] = field; 2274 if(param.colonne == 1){ 2275 maxPositionColonne1 = Math.max(maxPositionColonne1, param.position); 2276 } else { 2277 maxPositionColonne2 = Math.max(maxPositionColonne2, param.position); 2278 } 2279 } 2280 } 2281 } 2282 2283 for(let i=1;i<=maxPositionColonne1;i++){ 2284 ob = fields[1][i]; 2285 if(ob === undefined){ 2286 newuserForm.fields.push({type:"fake"}); 2287 newuserForm.colonne1.push({type:"fake"}); 2288 } else { 2289 ob.tabindex = ++index; 2290 newuserForm.fields.push(ob); 2291 newuserForm.colonne1.push(ob); 2292 } 2293 } 2294 2295 for(let i=1;i<=(maxPositionColonne2-1);i++){ 2296 ob = fields[2][i]; 2297 if(ob === undefined){ 2298 newuserForm.fields.push({type:"fake"}); 2299 newuserForm.colonne2.push({type:"fake"}); 2300 } else { 2301 ob.tabindex = ++index; 2302 newuserForm.fields.push(ob); 2303 newuserForm.colonne2.push(ob); 2304 } 2305 } 2306 ob = fields[2][maxPositionColonne2]; 2307 if(ob !== undefined){ 2308 ob.tabindex = ++index; 2309 newuserForm.fields.push(ob); 2310 newuserForm.colonne2.push(ob); 2311 } 2312 2313 while(newuserForm.colonne2.length < newuserForm.colonne1.length-1){ 2314 newuserForm.colonne2.push({type:"fake"}); 2315 } 2316 } 2317 2318 //Ajout des cs 2319 for(var i=0;i<newuserForm.csBlockPrincipal.length;i++){ 2320 ob = newuserForm.csBlockPrincipal[i]; 2321 ob.tabindex = ++index; 2322 newuserForm.fields.push(ob); 2323 if(index%2==0){ 2324 newuserForm.colonne2.push(ob); 2325 } else { 2326 newuserForm.colonne1.push(ob); 2327 } 2328 } 2329 2330 //On prend tout comme avant et on complete si besoin 2331 if(newuserForm.fields.length > 0 && newuserForm.fields.length%2==1){ 2332 ob = {}; 2333 ob.type = "fake"; 2334 newuserForm.fields.push(ob); 2335 newuserForm.colonne2.push(ob); 2336 } 2337 2338 if(creation === false) { 2339 ob = _.findWhere(newuserForm.fields, {name: "email"}); 2340 if(ob !== undefined) { 2341 ob.editable = commonConfig.emailEditableAccountPage; 2342 } 2343 } 2344 //console.log(newuserForm.fields); 2345 //console.log(newuserForm.colonne1); 2346 //console.log(newuserForm.colonne2); 2347 //} 2348 } 2349 2350 function _tryEndCustomer(deferred, newuserForm, creation, customer, onlyRequiredA
2350ndEmpty){ 2351 let ob, langues, selectLangues = []; 2352 TbsWS.call('getlangues', 'public').then( 2353 function (result) { 2354 langues = result; 2355 var i = 0, 2356 index = 0; 2357 2358 if (langues && langues.length > 1) { 2359 for (i; i < langues.length; i++) { 2360 ob = {}; 2361 ob.value = langues[i].codeIso; 2362 ob.label = langues[i].libelle; 2363 selectLangues.push(ob); 2364 } 2365 let langue = customer.langue; 2366 if (!langue) { 2367 langue = commonConfig.isoPaysRoutage.toLowerCase(); 2368 } 2369 selectLangues = _.sortBy(selectLangues, function(l) { return l.label; }); 2370 ob = _.findWhere(selectLangues, {value: langue}); 2371 if(ob !== undefined){ 2372 index = _.indexOf(_.pluck(selectLangues, 'value'), ob.value); 2373 } 2374 2375 ob = {}; 2376 formulaireManager.createSelect("langue", ob, "DICO_CUSTOMER_LANGUE", selectLangues, true, index); 2377 newuserForm.fields.push(ob); 2378 } 2379 2380 if (creation) { 2381 ob = {}; 2382 formulaireManager.createEmail("email",ob,(customer.email!==undefined?customer.email:""),"DICO_CUSTOMER_EMAIL", true,"text", 0, factory.MAX_LENGTH_EMAIL); 2383 newuserForm.fields.push(ob); 2384 } else { 2385 ob={}; 2386 formulaireManager.createTextField("codeclient",ob,(customer.codeClient!==undefined?customer.codeClient:""),'DICO_CUSTOMER_CODE',true,"numeric"); 2387 ob.editable = false; 2388 newuserForm.fields.push(ob); 2389 } 2390 if (creation) { 2391 ob = {}; 2392 formulaireManager.createPassword("password",ob,(customer.testpassword!==undefined?customer.testpassword:""),"DICO_CUSTOMER_MOTDEPASSE",(creation?true:false),"text", factory.MIN_LENGTH_PASSWORD, factory.MAX_LENGTH_PASSWORD); 2393 newuserForm.fields.push(ob); 2394 } else { 2395 ob = {}; 2396 formulaireManager.createPassword("password",ob,(customer.testpassword!==undefined?customer.testpassword:""),"DICO_CUSTOMER_LOGGED_MOTDEPASSE",(creation?true:false),"text", factory.MIN_LENGTH_PASSWORD, factory.MAX_LENGTH_PASSWORD); 2397 newuserForm.fields.push(ob); 2398 } 2399 2400 if (creation) { 2401 ob = {}; 2402 formulaireManager.createPassword("confirmpassword",ob,(customer.testpassword!==undefined?customer.testpassword:""),"DICO_CUSTOMER_CONFIRM_MOTDEPASSE",(creation?true:false),"text",0, factory.MAX_LENGTH_PASSWORD); 2403 newuserForm.fields.push(ob); 2404 2405 //Add address field 2406 factory.getNewAddressForm({}, creation, false).then(function(newadressForm){ 2407 2408 newuserForm.fields = newuserForm.fields.concat(newadressForm.fields); 2409 for(var p in newadressForm.others){ 2410 newuserForm.others[p] = newadressForm.others[p]; 2411 } 2412 2413 _getFinFormulaireClient(newuserForm, creation, customer); 2414 2415 deferred.resolve(newuserForm); 2416 2417 }); 2418 } else { 2419 ob = {}; 2420 formulaireManager.createEmail("email",ob,(customer.email!==undefined?customer.email:""),"DICO_CUSTOMER_EMAIL",true,"text", 0, factory.MAX_LENGTH_EMAIL); 2421 newuserForm.fields.push(ob); 2422 2423 ob = {}; 2424 formulaireManager.createPassword("confirmpassword",ob,(customer.testpassword!==undefined?customer.testpassword:""),"DICO_CUSTOMER_LOGGED_CONFIRM_MOTDEPASSE",(creation?true:false),"text",0, factory.MAX_LENGTH_PASSWORD); 2425 newuserForm.fields.push(ob); 2426 2427 _getFinFormulaireClient(newuserForm, creation, customer); 2428 2429 if(onlyRequiredAndEmpty !== undefined && onlyRequiredAndEmpty) { 2430 newuserForm.fields = _.filter(newuserForm.fields, function(ob){ 2431 return ob.required && ob.value === ''; 2432 } 2433 ); 2434 newuserForm.csBlockPrincipal = _.filter(newuserForm.csBlockPrincipal, function(ob){ 2435 return ob.required && ob.value === ''; 2436 } 2437 ); 2438 } 2439 2440 deferred.resolve(newuserForm); 2441 } 2442 }, function (error) { 2443 console.error("Error load langues: " + error); 2444 deferred.resolve(false); 2445 } 2446 ); 2447 } 2448 2449 factory.getNewUserForm = function getNewUserForm(){ 2450 return factory.getEditUserForm(dataManager.getCustomerData(),true); 2451 }; 2452
2453 factory.getCommentForm = function getCommentForm(){ 2454 var commentForm = {},ob={},comment; 2455 commentForm.fields = []; 2456 commentForm.others = {}; 2457 2458 comment = dataManager.getCommentData(); 2459 2460 ob={}; 2461 formulaireManager.createTextField("message",ob,(comment.message!==undefined?comment.message:""),'DICO_CUSTOMER_VOS_COMMENTAIRES',true,"text",0,500); 2462 commentForm.fields.push(ob); 2463 2464 var notes = []; 2465 for(var i=0;i<=10;i++){ 2466 ob={}; 2467 ob.value = i; 2468 ob.label = i; 2469 notes.push(ob); 2470 } 2471 2472 ob={}; 2473 formulaireManager.createSelect("notes",ob,"DICO_CUSTOMER_VOTRE_NOTE",notes,true); 2474 commentForm.fields.push(ob); 2475 2476 return commentForm; 2477 }; 2478 2479 factory.getNoteForm = function getNoteForm(){ 2480 var commentForm = {},ob={},val,fl,label; 2481 commentForm.fields = []; 2482 commentForm.others = {}; 2483 2484 for(var i = 10;i>0;i--){ 2485 ob={}; 2486 2487 fl = (i/2)-Math.floor(i/2); 2488 val = i/2;//(fl==0?Math.floor(i/2):(Math.floor(i/2)==0?"half":Math.floor(i/2)+" and a half")); 2489 2490 label = (i%2==1?"star"+(Math.floor(i/2)<1?"":Math.floor(i/2))+"half":"star"+(i/2)); 2491 2492 formulaireManager.createRadio("rating",ob,val,label,false); 2493 ob.full = (fl==0?true:false); 2494 2495 commentForm.fields.push(ob); 2496 } 2497 return commentForm; 2498 }; 2499 2500 /*factory.setNewNote = function setNewNote(newNote,product){ 2501 var deferred = $q.defer(); 2502 if(!Auth.isClientConnecte()){ 2503 $rootScope.temp.commenttitle = "DICO_CUSTOMER_NOTE_NON_CONNECTE_TITRE"; 2504 $rootScope.temp.commenttext = "DICO_CUSTOMER_NOTE_NON_CONNECTE_MESSAGE"; 2505 deferred.resolve(true); 2506 } else { 2507 var comment={}; 2508 comment.note = parseInt(parseFloat(newNote*2)); 2509 2510 TbsWS.call('setnote/'+$rootScope.preferredLanguage+'/'+product.refProduit,'private',comment).then( 2511 function(result){ 2512 if(result && result.key === "setnote"){ 2513 var status = result.value; 2514 status = status.replace(/"/g,''); 2515 if(status.indexOf(factory.COMMENT_STATUS_CREATE) == 0){ 2516 $rootScope.temp.commenttitle = "DICO_CUSTOMER_NOTE_TITRE"; 2517 $rootScope.temp.commenttext = "DICO_CUSTOMER_NOTE_MESSAGE"; 2518 $rootScope.temp.commentvalue = ""; 2519 } else { 2520 $rootScope.temp.commenttitle = "DICO_ERREUR_CUSTOMER_NOTE_TITRE"; 2521 $rootScope.temp.commenttext = "DICO_ERREUR_CUSTOMER_NOTE_MESSAGE"; 2522 } 2523 deferred.resolve(true); 2524 } else { 2525 deferred.resolve(false); 2526 } 2527 } 2528 ); 2529 } 2530 2531 return deferred.promise; 2532 };*/ 2533 2534 factory.createComment = function createComment(commentForm,product){ 2535 var deferred = $q.defer(); 2536 if(!Auth.isClientConnecte()){ 2537 $rootScope.temp.commenttitle = "DICO_CUSTOMER_COMMENTAIRE_NON_CONNECTE_TITRE"; 2538 $rootScope.temp.commenttext = "DICO_CUSTOMER_COMMENTAIRE_NON_CONNECTE_MESSAGE"; 2539 deferred.resolve(true); 2540 } else if(!formulaireManager.verifForm(commentForm)){ 2541 deferred.resolve(false); 2542 } else { 2543 var comment={}; 2544 comment.description = commentForm.fields[0].value; 2545 comment.note = parseInt(parseFloat( commentForm.fields[1].value*2)); 2546 2547 TbsWS.call('createcomment/'+$rootScope.preferredLanguage+'/'+product.refProduit,'private',comment).then( 2548 function(result){ 2549 if(result && result.key === "createcomment"){ 2550 var status = result.value; 2551 status = status.replace(/"/g,''); 2552 if(status.indexOf(factory.COMMENT_STATUS_CREATE) == 0){ 2553 $rootScope.temp.commentvalue = comment.description; 2554 $rootScope.temp.commenttitle = "DICO_CUSTOMER_COMMENTAIRE_TITRE"; 2555 $rootScope.temp.commenttext = "DICO_CUSTOMER_COMMENTAIRE_MESSAGE"; 2556 } else { 2557 $rootScope.temp.commenttitle = "DICO_ERREUR_CUSTOMER_COMMENTAIRE_TITRE"; 2558 $rootScope.temp.commenttext = "DICO_ERREUR_CUSTOMER_COMMENTAIRE_MESSAGE"; 2559 } 2560 deferred.resolve(true); 2561 } else { 2562 deferred.resolve(false); 2563 } 2564 } 2565 ); 2566 } 2567 2568 return deferred.promise; 2569 }; 2570 2571 factory.getForgetPrompt = function getForgetPrompt(){ 2572 if(commonConfig.connexionmode == "EMAIL"){ 2573 return 'DICO_SAISISSEZ_VOTRE_EMAIL_POUR_RECEVOIR_VOTRE_MOT_DE_PASSE'; 2574 } else { 2575 return 'DICO_SAISISSEZ_VOTRE_CODE_CLIENT_POUR_RECEVOIR_VOTRE_MOT_DE_PASSE'; 2576 } 2577 }; 2578 2579 factory.getForgetForm = function getForgetForm(oldForm){ 2580 var forgetForm = {},ob={}; 2581 forgetForm.alert = {}; 2582 forgetForm.alert.message = []; 2583 forgetForm.fields = []; 2584 forgetForm.others = {}; 2585 2586 ob={}; 2587 2588 formulaireManager.createCaptcha(forgetForm, true, "forgetForm"); 2589 2590 if(commonConfig.connexionmode == "EMAIL"){ 2591 formulaireManager.createEmail("email",ob,"",'DICO_CUSTOMER_VOTRE_EMAIL',true,"text", 0, factory.MAX_LENGTH_EMAIL); 2592 } else { 2593 formulaireManager.createTextField("email",ob,"",'DICO_CUSTOMER_LOGIN_CONNEXION',true,"text", 0, factory.MAX_LENGTH_EMAIL); 2594 } 2595 forgetForm.fields.push(ob); 2596 2597 return forgetForm; 2598 }; 2599 2600 factory.checkAskPassword = function checkAskPassword(forgetForm){ 2601 forgetForm.alert.message = []; 2602 return formulaireManager.verifForm(forgetForm); 2603 }; 2604 2605 factory.sendEmailLinkRenewPassword = function sendEmailLinkRenewPassword(forgetForm){ 2606 var deferred = $q.defer(); 2607 forgetForm.alert.message = []; 2608 2609 if(!formulaireManager.verifForm(forgetForm)){ 2610 deferred.resolve(false); 2611 } else { 2612 var email = formulaireManager.getDefaultValue(_.findWhere(forgetForm.fields, {name: "email"}
2612),"nomail"); 2613 TbsWS.call('sendmelinkrenewpassword/'+$rootScope.preferredLanguage,'public', {email: email}, (forgetForm.others.captcha !== undefined ? vcRecaptchaService.getResponse(forgetForm.others.captcha.widgetId) : "" )).then( 2614 function(result){ 2615 formulaireManager.resetCaptcha(forgetForm.others.captcha); 2616 forgetForm.alert.message = []; 2617 if(result && result.key === "sendmelinkrenewpassword"){ 2618 var status = result.value; 2619 if(!status || status === undefined){ 2620 forgetForm.alert.message.push("DICO_ERREUR_CUSTOMER_ERREUR_INCONNU"); 2621 deferred.resolve(false); 2622 } else { 2623 status = status.replace(/"/g,''); 2624 if(status == factory.FORGET_MAIL_SEND){ 2625 deferred.resolve(true); 2626 } else if(status == factory.FORGET_MAIL_UNKNOWN){ 2627 forgetForm.alert.message.push("DICO_ERREUR_CUSTOMER_MAIL_INCONNU"); 2628 deferred.resolve(false); 2629 } else { 2630 forgetForm.alert.message.push("DICO_ERREUR_CUSTOMER_ERREUR_PENDANT_LENVOIE_DU_MAIL"); 2631 deferred.resolve(false); 2632 } 2633 } 2634 } else { 2635 deferred.resolve(false); 2636 } 2637 } 2638 ,function(error) { 2639 formulaireManager.resetCaptcha(forgetForm.others.captcha); 2640 forgetForm.alert.message.push("DICO_ERREUR_CUSTOMER_ERREUR_INCONNU"); 2641 deferred.resolve(false); 2642 } 2643 ); 2644 } 2645 return deferred.promise; 2646 }; 2647 2648 factory.askPassword = function askPassword(forgetForm){ 2649 var deferred = $q.defer(); 2650 forgetForm.alert.message = []; 2651 2652 if(!formulaireManager.verifForm(forgetForm)){ 2653 deferred.resolve(false); 2654 } else { 2655 var email = formulaireManager.getDefaultValue(_.findWhere(forgetForm.fields, {name: "email"}),"nomail"); 2656 TbsWS.call('sendmepassword/'+$rootScope.preferredLanguage,'public', {email: email}, (forgetForm.others.captcha !== undefined ? vcRecaptchaService.getResponse(forgetForm.others.captcha.widgetId) : "" )).then( 2657 function(result){ 2658 formulaireManager.resetCaptcha(forgetForm.others.captcha); 2659 forgetForm.alert.message = []; 2660 if(result && result.key === "sendmepassword"){ 2661 var status = result.value; 2662 if(!status || status === undefined){ 2663 forgetForm.alert.message.push("DICO_ERREUR_CUSTOMER_ERREUR_INCONNU"); 2664 deferred.resolve(false); 2665 } else { 2666 status = status.replace(/"/g,''); 2667 if(status == factory.FORGET_MAIL_SEND){ 2668 deferred.resolve(true); 2669 } else if(status == factory.FORGET_MAIL_UNKNOWN){ 2670 forgetForm.alert.message.push("DICO_ERREUR_CUSTOMER_MAIL_INCONNU"); 2671 deferred.resolve(false); 2672 } else { 2673 forgetForm.alert.message.push("DICO_ERREUR_CUSTOMER_ERREUR_PENDANT_LENVOIE_DU_MAIL"); 2674 deferred.resolve(false); 2675 } 2676 } 2677 } else { 2678 deferred.resolve(false); 2679 } 2680 } 2681 ,function(error) { 2682 formulaireManager.resetCaptcha(forgetForm.others.captcha); 2683 forgetForm.alert.message.push("DICO_ERREUR_CUSTOMER_ERREUR_INCONNU"); 2684 deferred.resolve(false); 2685 } 2686 ); 2687 } 2688 return deferred.promise; 2689 }; 2690 2691 2692 2693 factory.getNewsletterForm = function getNewsletterForm(){ 2694 var newsletterForm = {},ob={}; 2695 newsletterForm.alert = {}; 2696 newsletterForm.alert.message = []; 2697 newsletterForm.success = {}; 2698 newsletterForm.success.message = []; 2699 newsletterForm.info = {}; 2700 newsletterForm.info.message = []; 2701 newsletterForm.fields = []; 2702 newsletterForm.others = {}; 2703 2704 ob={}; 2705 formulaireManager.createEmail("email",ob,"",'DICO_CUSTOMER_VOTRE_EMAIL',true,"text" ,0 ,factory.MAX_LENGTH_EMAIL); 2706 newsletterForm.fields.push(ob); 2707 2708 return newsletterForm; 2709 }; 2710 2711 factory.submitNewsletter = function submitNewsletter(newsletterForm){ 2712 var deferred = $q.defer(); 2713 newsletterForm.alert.message = []; 2714 newsletterForm.info.message = []; 2715 newsletterForm.success.message = []; 2716 2717 if(!formulaireManager.verifForm(newsletterForm)){ 2718 deferred.resolve(false); 2719 } else { 2720 var email = formulaireManager.getDefaultValue(_.findWhere(newsletterForm.fields, {name: "email"}
2720),"nomail"); 2721 TbsWS.call('subscribenewsletter/'+$rootScope.preferredLanguage+'/'+email,'public').then( 2722 function(result){ 2723 newsletterForm.alert.message = []; 2724 if(result && result.key === "subscribenewsletter"){ 2725 var status = result.value; 2726 if(!status || status === undefined){ 2727 deferred.resolve("DICO_ERREUR_CUSTOMER_NEWSLETTER_MESSAGE"); 2728 } else { 2729 status = status.replace(/"/g,''); 2730 if(status == factory.NEWSLETTER_SUBSCRIBE_CREATE){ 2731 deferred.resolve("DICO_CUSTOMER_NEWSLETTER_AJOUT"); 2732 } else if(status == factory.NEWSLETTER_SUBSCRIBE_EXISTS){ 2733 deferred.resolve("DICO_CUSTOMER_NEWSLETTER_MAIL_DEJA_AJOUTE"); 2734 } else if(status == factory.NEWSLETTER_SUBSCRIBE_EXISTS_BUT_NOT_VALID){ 2735 deferred.resolve("DICO_CUSTOMER_NEWSLETTER_MAIL_DEJA_AJOUTE_MAIS_VALIDE"); 2736 } else { 2737 deferred.resolve("DICO_ERREUR_CUSTOMER_NEWSLETTER_MESSAGE"); 2738 } 2739 } 2740 } else { 2741 deferred.resolve("DICO_ERREUR_CUSTOMER_NEWSLETTER_MESSAGE"); 2742 } 2743 } 2744 ,function(error) { 2745 deferred.resolve("DICO_ERREUR_CUSTOMER_NEWSLETTER_MESSAGE"); 2746 } 2747 ); 2748 } 2749 return deferred.promise; 2750 }; 2751 2752 factory.validateNewsletter = function validateNewsletter(idValidation){ 2753 var deferred = $q.defer(); 2754 TbsWS.call('validatenewsletter/'+ idValidation,'public').then( 2755 function(result){ 2756 if(result && result.key === "validatenewsletter"){ 2757 var status = result.value; 2758 if(!status || status === undefined){ 2759 deferred.resolve("error"); 2760 } else { 2761 status = status.replace(/"/g,''); 2762 deferred.resolve(status); 2763 } 2764 } else { 2765 deferred.resolve("error"); 2766 } 2767 } 2768 ,function(error) { 2769 console.error(error); 2770 deferred.reject("error"); 2771 } 2772 ); 2773 2774 return deferred.promise; 2775 }; 2776 2777 factory.getInvoices = function getInvoices(offset, maxResults){ 2778 var deferred = $q.defer(); 2779 TbsWS.call('getinvoices/'+$rootScope.preferredLanguage + '/offset/'+ offset + '/maxresults/' + maxResults,'private').then( 2780 function(invoices){ 2781 deferred.resolve(invoices); 2782 } 2783 ,function(error) { 2784 deferred.resolve([]); 2785 } 2786 ); 2787 return deferred.promise; 2788 }; 2789 2790 factory.getNbInvoices = function getNbInvoices(){ 2791 var deferred = $q.defer(); 2792 TbsWS.call('getnbinvoices','private').then( 2793 function(nbInvoices){ 2794 deferred.resolve(nbInvoices.value); 2795 } 2796 ,function(error) { 2797 deferred.resolve([]); 2798 } 2799 ); 2800 return deferred.promise; 2801 }; 2802 2803 factory.downloadInvoice = function downloadInvoice(noInvoice){ 2804 var deferred = $q.defer(); 2805 TbsWS.call('getdownloadinvoiceinfos/'+noInvoice,'private').then( 2806 function(result){ 2807 if(result && result.key === "getdownloadinvoiceinfos"){ 2808 var infos = result.value; 2809 window.open(commonConfig.hrefaboweb+'/DownloadServlet?'+infos); 2810 deferred.resolve(true); 2811 } else { 2812 deferred.resolve(false); 2813 } 2814 } 2815 ,function(error) { 2816 deferred.resolve(false); 2817 } 2818 ); 2819 return deferred.promise; 2820 }; 2821 2822 factory.getSubscriptionsByBeneficiaries = function getSubscriptionsByBeneficiaries(){ 2823 var deferred = $q.defer(); 2824 TbsWS.call('getsubscriptionsbybeneficiaries/'+$rootScope.preferredLanguage,'private').then( 2825 function(subscriptions){ 2826 deferred.resolve(subscriptions); 2827 } 2828 ,function(error) { 2829 deferred.resolve([]); 2830 } 2831 ); 2832 return deferred.promise; 2833 }; 2834 2835 factory.getOffers = function getOffers(offset, maxResults){ 2836 var deferred = $q.defer(); 2837 TbsWS.call('getoffers/'+$rootScope.preferredLanguage + '/offset/'+ offset + '/maxresults/' + maxResults,'private').then( 2838 function(offers){ 2839 deferred.resolve(offers); 2840 } 2841 ,function(error) { 2842 deferred.resolve([]); 2843 } 2844 ); 2845 return deferred.promise; 2846 }; 2847 2848 factory.getNbOffers = function getNbOffers(){ 2849 var deferred = $q.defer(); 2850 TbsWS.call('getnboffers','private').then( 2851 function(nbOffers){ 2852 deferred.resolve(nbOffers.value); 2853 } 2854 ,function(error) { 2855 deferred.resolve([]); 2856 } 2857 ); 2858 return deferred.promise; 2859 }; 2860 2861 factory.getOffersOffered = function getOffersOffered(offset, maxResults){ 2862 var deferred = $q.defer(); 2863 TbsWS.call('getoffers/'+$rootScope.preferredLanguage + '/offset/'+ offset + '/maxresults/' + maxResults + '/parrain','private').then( 2864 function(offers){ 2865 deferred.resolve(offers); 2866 } 2867 ,function(error) { 2868 deferred.resolve([]); 2869 } 2870 ); 2871 return deferred.promise; 2872 }; 2873 2874 factory.getNbOffersOffered = function getNbOffersOffered(){ 2875 var deferred = $q.defer(); 2876 TbsWS.call('getnboffers/parrain','private').then( 2877 function(nbOffers){ 2878 deferred.resolve(nbOffers.value); 2879 } 2880 ,function(error) { 2881 deferred.resolve([]); 2882 } 2883 ); 2884 return deferred.promise; 2885 }; 2886
2887 factory.getSubscription = function getSubscription(idSubscription){ 2888 var deferred = $q.defer(); 2889 TbsWS.call('getsubscription/'+$rootScope.preferredLanguage+'/'+idSubscription,'private').then( 2890 function(subscription){ 2891 deferred.resolve(subscription); 2892 } 2893 ,function(error) { 2894 deferred.resolve([]); 2895 } 2896 ); 2897 return deferred.promise; 2898 }; 2899 2900 factory.getSubscriptions = function getSubscriptions(offset, maxResults, refFormule, isParrain){ 2901 var deferred = $q.defer(); 2902 TbsWS.call('getsubscriptions/'+$rootScope.preferredLanguage + '/offset/'+ offset + '/maxresults/' + maxResults + '/refformule/' + refFormule + (isParrain === true ? '/parrain' : ''),'private').then( 2903 function(subscriptions){ 2904 deferred.resolve(subscriptions); 2905 } 2906 ,function(error) { 2907 deferred.resolve([]); 2908 } 2909 ); 2910 return deferred.promise; 2911 }; 2912 2913 factory.getArticlesByTarifFormule = function getArticlesByTarifFormule(refTarif){ 2914 var deferred = $q.defer(); 2915 TbsWS.call('getarticlesbytarifformule/reftarif/' + refTarif,'private').then( 2916 function(articles){ 2917 deferred.resolve(articles); 2918 } 2919 ,function(error) { 2920 deferred.resolve([]); 2921 } 2922 ); 2923 return deferred.promise; 2924 }; 2925 2926 factory.getNbSubscriptions = function getNbSubscriptions(){ 2927 var deferred = $q.defer(); 2928 TbsWS.call('getnbsubscriptions','private').then( 2929 function(nbSubscriptions){ 2930 deferred.resolve(nbSubscriptions.value); 2931 } 2932 ,function(error) { 2933 deferred.resolve([]); 2934 } 2935 ); 2936 return deferred.promise; 2937 }; 2938 2939 factory.getArticles = function getArticles(offset, maxResults){ 2940 var deferred = $q.defer(); 2941 TbsWS.call('getarticles/' + $rootScope.preferredLanguage + '/offset/'+ offset + '/maxresults/' + maxResults,'private').then( 2942 function(articles){ 2943 deferred.resolve(articles); 2944 } 2945 ,function(error) { 2946 deferred.resolve([]); 2947 } 2948 ); 2949 return deferred.promise; 2950 }; 2951 2952 factory.getNbArticles = function getNbArticles(){ 2953 var deferred = $q.defer(); 2954 TbsWS.call('getnbarticles','private').then( 2955 function(nbArticles){ 2956 deferred.resolve(nbArticles.value); 2957 } 2958 ,function(error) { 2959 deferred.resolve([]); 2960 } 2961 ); 2962 return deferred.promise; 2963 }; 2964 2965 factory.getBankDetails = function getBankDetails(){ 2966 var deferred = $q.defer(); 2967 TbsWS.call('getbankdetails/'+$rootScope.preferredLanguage,'private').then( 2968 function(bankdetails){ 2969 deferred.resolve(bankdetails); 2970 } 2971 ,function(error) { 2972 deferred.resolve([]); 2973 } 2974 ); 2975 return deferred.promise; 2976 }; 2977 2978 factory.getDisplayName = function getDisplayName(customer, withCivilite){ 2979 if(customer){ 2980 if(customer.adressePrincipale.societe !== ''){
2981 return customer.adressePrincipale.societe; 2982 } else { 2983 if(withCivilite){ 2984 return customer.adressePrincipale.civilite + " " + customer.adressePrincipale.prenom + " " + customer.adressePrincipale.nom; 2985 } else { 2986 return customer.adressePrincipale.prenom + " " + customer.adressePrincipale.nom; 2987 } 2988 } 2989 } 2990 }; 2991 2992 factory.getSuspensionReasonsByReasonType = function getSuspensionReasonsByReasonType(refTypeMotif) { 2993 var deferred = $q.defer(); 2994 TbsWS.call('getsuspensionreasons?reasonType='+refTypeMotif,'private').then( 2995 function(motifs){ 2996 deferred.resolve(motifs); 2997 } 2998 ,function(error) { 2999 deferred.resolve([]); 3000 } 3001 ); 3002 return deferred.promise; 3003 } 3004 3005 factory.getSuspensions = function getSuspensions() { 3006 var deferred = $q.defer(); 3007 TbsWS.call('getsuspensions','private').then( 3008 function(suspensions){ 3009 deferred.resolve(suspensions); 3010 } 3011 ,function(error) { 3012 deferred.resolve([]); 3013 } 3014 ); 3015 return deferred.promise; 3016 } 3017 3018 factory.getSuspensionsBySubscriptionRef = function getSuspensionsBySubscriptionRef(refAbo) { 3019 var deferred = $q.defer(); 3020 TbsWS.call('getsuspensions?subscriptionRef='+refAbo,'private').then( 3021 function(suspensions){ 3022 deferred.resolve(suspensions); 3023 } 3024 ,function(error) { 3025 deferred.resolve([]); 3026 } 3027 ); 3028 return deferred.promise; 3029 } 3030 3031 factory.addSuspension = function addSuspension(suspensionForm) { 3032 var suspension = {}; 3033 suspension.dateDebut = suspensionForm.dateDebut; 3034 suspension.dateFin = suspensionForm.dateFin; 3035 suspension.motif = {}; 3036 suspension.motif.refMotifSuspension = suspensionForm.refMotif; 3037 suspension.refAbonnements = suspensionForm.refAbonnements; 3038 3039 var deferred = $q.defer(); 3040 TbsWS.call('addsuspension','private',suspension).then( 3041 function(result){ 3042 if(result && result.key === "addsuspension"){ 3043 var status = result.value; 3044 if(!status || status === undefined){ 3045 deferred.resolve(false); 3046 } else { 3047 status = status.replace(/"/g,''); 3048 if(status == factory.SUSPENSION_STATUS_CREATE){ 3049 deferred.resolve(true); 3050 } else if(status == factory.SUSPENSION_STATUS_ERROR_NOT_SUSPENDED 3051 || status.split(':')[0] == factory.SUSPENSION_STATUS_ERROR_DURATION) { 3052 status = status.split(':'); 3053 deferred.resolve({error: status[0], params: [status[1]]}); 3054 } else { 3055 deferred.resolve(false); 3056 } 3057 } 3058 } else { 3059 deferred.resolve(false); 3060 } 3061 } 3062 ,function(error) { 3063 console.error(error); 3064 deferred.resolve(false); 3065 } 3066 ); 3067 return deferred.promise; 3068 } 3069 3070 factory.deleteSuspension = function deleteSuspension(refSuspension) { 3071 var deferred = $q.defer(); 3072 TbsWS.call('deletesuspension/'+refSuspension,'private').then( 3073 function(result){ 3074 if(result && result.key === "deletesuspension"){ 3075 var status = result.value; 3076 if(!status || status === undefined){ 3077 deferred.resolve(false); 3078 } else { 3079 status = status.replace(/"/g,''); 3080 if(status == factory.SUSPENSION_STATUS_DELETE){ 3081 deferred.resolve(true); 3082 } else { 3083 deferred.resolve(false); 3084 } 3085 } 3086 } else { 3087 deferred.resolve(false); 3088 } 3089 } 3090 ,function(error) { 3091 console.error(error); 3092 deferred.resolve(false); 3093 } 3094 ); 3095 return deferred.promise; 3096 } 3097 3098 factory.checkComplementInfo = function checkComplementInfo(customer, adresse, isGift, origin) { 3099 var deferred = $q.defer(); 3100 if(commonConfig.forceAskInfoCustomerInfoOnDelivery){ 3101 let addressFormInit = {}; 3102 addressFormInit.alert = []; 3103 factory.getAddressForm(addressFormInit, adresse, false, isGift, false, true, customer, false, origin).then( 3104 function(addressForm){ 3105 deferred.resolve(!formulaireManager.verifForm(addressForm)); 3106 } 3107 ); 3108 } else { 3109 deferred.resolve(false); 3110 } 3111 return deferred.promise; 3112 } 3113 3114 3115 function _getModeConnexion(fields){ 3116 if(fields && fields !== undefined){ 3117 var field = {},defaultLogin,defaultPassword="",externallogin = (commonConfig.idpurl===undefined?fal
3117se:true); 3118 if($rootScope.signin.inProgress){ 3119 defaultLogin = $rootScope.signin.login; 3120 defaultPassword = $rootScope.signin.password; 3121 $rootScope.signin.login=""; 3122 $rootScope.signin.password=""; 3123 } else if(commonConfig.enTest) { 3124 let customer = dataManager.getCustomerData(); 3125 defaultLogin = (customer.email!==undefined?customer.email:""); 3126 defaultPassword = (customer.testpassword!==undefined?customer.testpassword:""); 3127 } 3128 3129 if(!externallogin){ 3130 if(commonConfig.connexionmode == "EMAIL"){ 3131 field = {}; 3132 formulaireManager.createEmailCode("email",field,defaultLogin,'DICO_CUSTOMER_EMAIL_CONNEXION',true,"text",0 ,factory.MAX_LENGTH_EMAIL); 3133 fields.push(field); 3134 } else { 3135 field = {}; 3136 formulaireManager.createTextField("email",field,defaultLogin,'DICO_CUSTOMER_LOGIN_CONNEXION',true,"text",0 ,factory.MAX_LENGTH_EMAIL); 3137 fields.push(field); 3138 } 3139 3140 field = {}; 3141 formulaireManager.createPassword("password",field,defaultPassword,'DICO_CUSTOMER_MOTDEPASSE_CONNEXION',true,"text",0 ,factory.MAX_LENGTH_PASSWORD); 3142 fields.push(field); 3143 3144 field = {}; 3145 formulaireManager.createLink("forgot",field,'DICO_CUSTOMER_MOT_DE_PASSE_OUBLIE',function(headersignin){$("#"+headersignin).removeClass('open');$rootScope.openModalForget();}); 3146 fields.push(field); 3147 } else if(externallogin && commonConfig.urlforgotpassword !== undefined){ 3148 field = {}; 3149 formulaireManager.createLink("forgot",field,'DICO_CUSTOMER_MOT_DE_PASSE_OUBLIE',function(){var win = window.open(commonConfig.urlforgotpassword, '_blank');win.focus();}); 3150 fields.push(field); 3151 } 3152 } 3153 }; 3154 3155 function _getOptins(offset, maxresults) { 3156 var deferred = $q.defer(); 3157 if (commonConfig.displayOptinsMyAccount) { 3158 TbsWS.call('myaccount/getoptins/offset/'+offset+'/maxresults/'+maxresults,'private').then( 3159 function (optins) { 3160 deferred.resolve(optins); 3161 } 3162 ,function(error) { 3163 console.error(error); 3164 deferred.resolve(false); 3165 } 3166 ); 3167 } else { 3168 deferred.resolve(false); 3169 } 3170 return deferred.promise; 3171 } 3172 3173 function _setOptins(optins) { 3174 var deferred = $q.defer(); 3175 if (commonConfig.displayOptinsMyAccount) { 3176 TbsWS.call('myaccount/setoptins','private', {array: optins}).then( 3177 function () { 3178 deferred.resolve(true); 3179 } 3180 ,function(error) { 3181 console.error(error); 3182 deferred.resolve(false); 3183 } 3184 ); 3185 } else { 3186 deferred.resolve(false); 3187 } 3188 return deferred.promise; 3189 } 3190 3191 return factory; 3192 }]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.