2025-08-06 15:49:46 +02:00
export class PaymentVirement extends HTMLButtonElement {
connectedCallback ( ) {
let element = this ;
element . addEventListener ( 'click' , function ( e ) {
e . preventDefault ( ) ;
let displayModal = document . createElement ( 'div' ) ;
displayModal . classList . add ( 'modal-payment' ) ;
let iframeContainer = document . createElement ( 'div' ) ;
iframeContainer . style . height = "fit-content" ;
iframeContainer . classList . add (
'iframe-container' ,
'max-w-md' ,
'mx-auto' ,
'bg-white' ,
'dark:bg-gray-900' ,
'rounded-xl' ,
'shadow-md' ,
'overflow-hidden' ,
'p-6' ,
'space-y-4'
) ;
// Message d'invitation au virement
let infoMsg = document . createElement ( 'div' ) ;
infoMsg . className = 'text-xl text-white-700 dark:text-white-300 mb-2' ;
infoMsg . textContent = "Merci d'effectuer le virement sur ce compte, en notant la référence de l'avis de paiement ! Dés réception du règlement une facture vous sera envoyée" ;
iframeContainer . appendChild ( infoMsg ) ;
let ibanLabel = document . createElement ( 'div' ) ;
ibanLabel . className = 'text-gray-700 dark:text-gray-300 text-base font-semibold' ;
ibanLabel . textContent = 'IBAN' ;
let ibanValue = document . createElement ( 'div' ) ;
ibanValue . className = 'text-gray-900 dark:text-white text-lg font-mono break-all' ;
ibanValue . textContent = 'FR76 1020 6006 7198 4797 7981 061' ;
let bicLabel = document . createElement ( 'div' ) ;
bicLabel . className = 'text-gray-700 dark:text-gray-300 text-base font-semibold' ;
bicLabel . textContent = 'BIC' ;
let bicValue = document . createElement ( 'div' ) ;
bicValue . className = 'text-gray-900 dark:text-white text-lg font-mono' ;
bicValue . textContent = 'AGRIFRPP802' ;
let btn = document . createElement ( 'a' ) ;
btn . setAttribute ( 'href' , '/paiement?id=' + element . getAttribute ( 'id' ) + "&type=virement" ) ;
btn . classList = "button bg-green-900 w-full text-center text-white p-2" ;
btn . innerText = "Je confirme le paiement par virement bancaire"
iframeContainer . appendChild ( ibanLabel ) ;
iframeContainer . appendChild ( ibanValue ) ;
iframeContainer . appendChild ( bicLabel ) ;
iframeContainer . appendChild ( bicValue ) ;
iframeContainer . appendChild ( btn ) ;
document . body . appendChild ( iframeContainer ) ;
displayModal . appendChild ( iframeContainer ) ;
document . body . appendChild ( displayModal ) ;
} )
}
}
export class PaymentChaque extends HTMLButtonElement {
connectedCallback ( ) {
let element = this ;
element . addEventListener ( 'click' , function ( e ) {
e . preventDefault ( ) ;
let displayModal = document . createElement ( 'div' ) ;
displayModal . classList . add ( 'modal-payment' ) ;
let iframeContainer = document . createElement ( 'div' ) ;
iframeContainer . style . height = "fit-content" ;
iframeContainer . classList . add (
'iframe-container' ,
'max-w-md' ,
'mx-auto' ,
'bg-white' ,
'dark:bg-gray-900' ,
'rounded-xl' ,
'shadow-md' ,
'overflow-hidden' ,
'p-6' ,
'space-y-4'
) ;
// Message d'invitation au virement
let infoMsg = document . createElement ( 'div' ) ;
infoMsg . className = 'text-xl text-white-700 dark:text-white-300 mb-2' ;
infoMsg . textContent = "Merci d'envoie le chéque à l'adresse suivant en notant la référence de l'avis de paiement aux dos ! Dés réception du chéque et sont incaisement une facture vous sera envoyée" ;
iframeContainer . appendChild ( infoMsg ) ;
let ibanLabel = document . createElement ( 'div' ) ;
ibanLabel . className = 'text-gray-700 dark:text-gray-300 text-base font-semibold' ;
ibanLabel . textContent = 'Adresse' ;
let ibanValue = document . createElement ( 'div' ) ;
ibanValue . className = 'text-gray-900 dark:text-white text-lg font-mono break-all' ;
ibanValue . textContent = '27 rue le Sérurier 02100 Saint-Quentin' ;
let bicLabel = document . createElement ( 'div' ) ;
bicLabel . className = 'text-gray-700 dark:text-gray-300 text-base font-semibold' ;
bicLabel . textContent = 'A l\'ordre de ' ;
let bicValue = document . createElement ( 'div' ) ;
bicValue . className = 'text-gray-900 dark:text-white text-lg font-mono' ;
bicValue . textContent = 'SARL SITECONSEIL' ;
let btn = document . createElement ( 'a' ) ;
btn . setAttribute ( 'href' , '/paiement?id=' + element . getAttribute ( 'id' ) + "&type=bank" ) ;
btn . classList = "button bg-green-900 w-full text-center text-white p-2" ;
btn . innerText = "Je confirme le paiement par chéque"
iframeContainer . appendChild ( ibanLabel ) ;
iframeContainer . appendChild ( ibanValue ) ;
iframeContainer . appendChild ( bicLabel ) ;
iframeContainer . appendChild ( bicValue ) ;
iframeContainer . appendChild ( btn ) ;
document . body . appendChild ( iframeContainer ) ;
displayModal . appendChild ( iframeContainer ) ;
document . body . appendChild ( displayModal ) ;
} )
}
}
2025-07-30 14:56:27 +02:00
export class PaymentPage extends HTMLButtonElement {
connectedCallback ( ) {
let element = this ;
element . addEventListener ( 'click' , function ( ) {
let banke = document . querySelector ( '.banke' ) ;
banke . classList . remove ( 'show' ) ;
let displayModal = document . createElement ( 'div' ) ;
displayModal . classList . add ( 'modal-payment' ) ;
let iframeContainer = document . createElement ( 'div' ) ;
iframeContainer . classList . add ( 'iframe-container' ) ;
window . addEventListener ( 'message' , function ( event ) {
if ( event . origin !== 'https://payment.stancer.com' ) {
return ;
}
if ( event . data . status != undefined ) {
if ( event . data . status != "init" && event . data . status != "pending" && event . data . status != "secure-auth-start" && event . data . status != "secure-auth-end" ) {
if ( event . data . status == "paid" ) {
displayModal . remove ( ) ;
location . href = "/paiement/complete?id=" + element . getAttribute ( 'id' ) ;
} else if ( event . data . status == "finished" ) {
displayModal . remove ( ) ;
location . href = event . data . url ;
} else {
fetch ( "/api-interne/intranet/customer/payment/cancel?id=" + element . getAttribute ( 'id' ) )
displayModal . remove ( ) ;
banke . classList . add ( 'show' ) ;
}
}
}
console . log ( event . data ) ;
} ) ;
fetch ( "/api-interne/intranet/customer/payment?id=" + element . getAttribute ( 'id' ) )
. then ( r => r . json ( ) )
. then ( r => {
let iframe = document . createElement ( 'iframe' ) ;
iframe . src = r . url ;
iframeContainer . appendChild ( iframe ) ;
window . frame = iframeContainer ;
} )
displayModal . appendChild ( iframeContainer ) ;
document . body . appendChild ( displayModal ) ;
} )
}
}
2025-08-06 15:49:46 +02:00
export class PaymentSepa extends HTMLButtonElement {
connectedCallback ( ) {
let element = this ;
element . addEventListener ( 'click' , function ( ) {
let banke = document . querySelector ( '.banke' ) ;
banke . classList . remove ( 'show' ) ;
let displayModal = document . createElement ( 'div' ) ;
displayModal . classList . add ( 'modal-payment' ) ;
let iframeContainer = document . createElement ( 'div' ) ;
iframeContainer . classList . add ( 'iframe-container' ) ;
window . addEventListener ( 'message' , function ( event ) {
if ( event . origin !== 'https://payment.stancer.com' ) {
return ;
}
/ * i f ( e v e n t . d a t a . s t a t u s ! = u n d e f i n e d ) {
if ( event . data . status != "init" && event . data . status != "pending" && event . data . status != "secure-auth-start" && event . data . status != "secure-auth-end" ) {
if ( event . data . status == "paid" ) {
displayModal . remove ( ) ;
location . href = "/paiement/complete?id=" + element . getAttribute ( 'id' ) ;
} else if ( event . data . status == "finished" ) {
displayModal . remove ( ) ;
location . href = event . data . url ;
} else {
fetch ( "/api-interne/intranet/customer/payment/cancel?id=" + element . getAttribute ( 'id' ) )
displayModal . remove ( ) ;
banke . classList . add ( 'show' ) ;
}
}
} * /
console . log ( event . data ) ;
} ) ;
fetch ( "/api-interne/intranet/customer/payment?id=" + element . getAttribute ( 'id' ) + "&type=sepa" )
. then ( r => r . json ( ) )
. then ( r => {
let iframe = document . createElement ( 'iframe' ) ;
iframe . src = r . url ;
iframeContainer . appendChild ( iframe ) ;
window . frame = iframeContainer ;
} )
displayModal . appendChild ( iframeContainer ) ;
document . body . appendChild ( displayModal ) ;
} )
}
}