Closed pirliis closed 1 month ago
Lapissa samaa ongelmaa. Toivotaan Oulun ehdottamaa korjausta.
Olisiko tätä kehitysehdotusta mahdollista toteuttaa? OUTIssa on jatkuvasti asiakkaita, joilla on miinusmerkkisiä maksusaldoja. Henkilökuntaa on ohjeistettu ja muistutettu, mitä pitää tehdä ja mitä ei saa tehdä, kun maksut lähetetään Kohasta Ceeposiin, mutta aina siellä on joku, joka tekee niin kuin ei saisi tehdä. :(
Tämä ehdotus ei ole ehtinyt vielä käymään asiantuntijaryhmässä, koska olemme käsitelleet vielä Redminestä vanhoja häntiä. Ne kuitenkin saatiin nyt viime kokouksessa käsiteltyä ja päästään vihdoin näihin GitHubissa oleviin kehitysehdotuksiin.
Koha-Suomen asiantuntijaryhmä 5.2.2024: Piilotetaan Hyväksy-nappi Ceeposta käyttävistä yksiköistä.
Ceepoksessa ohjeistetaankin jo liittämään intranetuser.js-osioon koodia. Sieltä löytyy tuo Ceeposmaksu-napin muodostaminen, joka jo tarkistaa että onko Ceepos käytössä. (Nappia ei siis muodostu vaikka tuo rimpsu jäisi intranetusersiin, jos Ceepos-plugin ei ole käytössä.)
if (ceeposBranches.includes($("#logged-in-info-full .logged-in-branch-code").text())) {
$("#payfine .action, #payindivfine .action").find("input").after('<input type="button" id="CeeposMaksu" style="margin-left:3px;" value="Ceeposmaksu" onclick="setCeeposPayment($(this))"/>');
Tämä lisää uuden napin tuon Hyväksy napin perään, niin jos lisää sinne vain .hide() väliin, niin samalla hoituu Hyväksy-napin piilotuskin. Lisäisin sinne vielä muutamia pikseleitä Ceepos-napin ja Peruuta-linkin väliin. (Sekä napin classit, jotka näyttäisivät olevan ainakin Outilla, vaikka niitä ei plugarin ohjerimpsussa ollutkaan.)
if (ceeposBranches.includes($("#logged-in-info-full .logged-in-branch-code").text())) {
$("#payfine .action, #payindivfine .action").find("input").hide().after('<input type="button" id="CeeposMaksu" class="btn btn-primary" style="margin:0px 10px;" value="Ceeposmaksu" onclick="setCeeposPayment($(this))"/>');
Näyttää tältä:
Liitännäisen Readmessä taitaa olla vanhempi versio rimpsusta. Uusin versio on IntranetUserJS-kirjastossa. Pitäneekin muistaa päivittää kumpaankin paikkaan sitten muutetettu versio.
(Olen uudempaan korjannut mm. Ceeposmaksu-sanan muotoon Ceepos-maksu)
Joo. Tehdään nykyisen lausekkeen alkuun tuo muutos. Alla nyt esimerkki miten tämä on Outi-testissä. Outin lausekkeessa on näköjään myös muutettu let-muuttujat var-muuttujiksi, ja on logattu aika paljon asiaa. Katsotaan nyt mikä on sitten se final form :). Testattavissa nyt Outi-testillä:
/// ALKU ///
/// Ceepos-maksu -napin lisäys ///
/// Napin taustavärinä ja reunavärinä keltainen? #ffc32b ///
$(document).ready(function() {
var ceeposBranches = ['OUPK','OUR','OUHA','OUMA','OUUL','OUOS','OUH','OUKI','OUKS','OUKA','OUPE','UTPK','IIPK','PUPK','VAPK','LUPK'];
if (ceeposBranches.includes($("#logged-in-info-full .logged-in-branch-code").text())) {
$("#payfine .action, #payindivfine .action").find("input").hide().after('<input type="button" id="CeeposMaksu" class="btn btn-primary" style="margin:0px 10px;" value="Ceepos-maksu" onclick="setCeeposPayment($(this))"/>');
Muuttunut rivi erikseen vielä tässä:
$("#payfine .action, #payindivfine .action").find("input").hide().after('<input type="button" id="CeeposMaksu" class="btn btn-primary" style="margin:0px 10px;" value="Ceepos-maksu" onclick="setCeeposPayment($(this))"/>');
Näyttää siltä, että Ceepos-maksu-nappi on tulostunut aiemmin myös 'Poista Valitut' välilehdelle, ja nyt sitten Hyväksy-nappikin katoaa sieltä, eli viilataan vähän enemmän.
Nyt on Outi-testillä seuraava rimpsu. Mukana on sinne aiemmin lisätyt loggausrivit, ilmeisesti ovat tarpeen. Lisäsin alkuun tarkistuksen, että ollaan oikealla sivulla eikä kyseessä ole poisto. (Jostain syystä 'Poista valitut' ja 'Maksa valitut' -lomakkeet ovat samannimisiä.)
/// ALKU ///
/// Ceepos-maksu -napin lisäys ///
/// Napin taustavärinä ja reunavärinä keltainen? #ffc32b ///
$(document).ready(function() {
if (window.location.pathname == '/cgi-bin/koha/members/paycollect.pl' && !window.location.search.includes("WRITEOFF")) {
var ceeposBranches = ['OUPK','OUR','OUHA','OUMA','OUUL','OUOS','OUH','OUKI','OUKS','OUKA','OUPE','UTPK','IIPK','PUPK','VAPK','LUPK'];
if (ceeposBranches.includes($("#logged-in-info-full .logged-in-branch-code").text())) {
console.log("ceeposbranch löytyi");
console.log($("#logged-in-info-full .logged-in-branch-code").text());
$("#payfine .action, #payindivfine .action").find("input").hide().after('<input type="button" id="CeeposMaksu" class="btn btn-primary" style="margin:0px 10px;" value="Ceepos-maksu" onclick="setCeeposPayment($(this))"/>');
if(localStorage.getItem('ceeposOffice')) {
$('#payment_type').val(localStorage.getItem('ceeposOffice'));
}
}
}
$('#paycollect').hide();
$("#circmessages a[href*='/cgi-bin/koha/members/paycollect.pl'").hide();
$("#patron_messages a[href*='/cgi-bin/koha/members/paycollect.pl'").hide();
});
function setCeeposPayment(element) {
var ceeposOffice = $('#payment_type').find(":selected").val();
console.log("CeeposOffice:");
localStorage.setItem('ceeposOffice', ceeposOffice);
console.log(localStorage.getItem("ceeposOffice"));
var payments;
var borrowernumber;
if($("#payindivfine").find("#pay_individual").val() == 1) {
console.log("payindividual = 1");
borrowernumber = $("#payindivfine").find("#borrowernumber").val();
console.log("borrowernumber:");
console.log(borrowernumber);
payments = [{'borrowernumber': $("#payindivfine").find("#borrowernumber").val(), 'accountlines_id': $("#payindivfine").find("#accountlines_id").val(), 'description': $("#payindivfine").find("#description").val(), 'amountoutstanding': $("#payindivfine").find("#amountoutstanding").val(), 'payment_type': $("#payindivfine").find("#debit_type_code").val(), 'office': ceeposOffice}];
console.log("Payments:");
console.log(payments);
} else {
borrowernumber = $("#payfine").find("#borrowernumber").val();
payments = [{'borrowernumber': $("#payfine").find("#borrowernumber").val(), 'accountlines': $("#payfine").find("#selected_accts").val(), 'amountoutstanding': $("#payfine").find("#collected").val(), 'office': ceeposOffice}];
console.log("not paying invidual");
console.log("payments:");
console.log(payments);
}
console.log ("sending data:");
console.log (JSON.stringify(payments));
$.ajax({
url: "/api/v1/contrib/kohasuomi/payments/ceepos",
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(payments),
beforeSend: function() {
$("#CeeposMaksu").attr("disabled", true);
alert("Maksu lähetetty, käsittele kassassa!");
},
success: function (result) {
console.log("api Success:");
console.log(result);
location.href = '/cgi-bin/koha/members/boraccount.pl?borrowernumber='+borrowernumber;
},
error: function (xhr, status, error) {
console.log("api Error:");
console.log(xhr, status, error);
console.log(error);
$("#CeeposMaksu").attr("disabled", false);
alert(JSON.parse(xhr.responseText).error);
}
});
}
///LOPPU ///
Onko tätä mahdollisuus testata muillakin testeillä vai testaako Outi yksin?
Minulla ei ole tunnuksia muihin testeihin, mutta testeille voi kyllä pääkäyttäjätkin lisätä rimpsut itse, kehittäjien päivityksiä ei tarvita siellä. Eli omalla testillänne voitte korvata edellisen rimpsun tuolla uudella, kunhan muistatte päivittää omat branchcodet riville:
var ceeposBranches = ['OUPK','OUR','OUHA','OUMA','OUUL','OUOS','OUH','OUKI','OUKS','OUKA','OUPE','UTPK','IIPK','PUPK','VAPK','LUPK'];
ok, minäpä kopioin tuon rimpsun oikeaan muotoon Vaaran testille ja kokeilen, mitä tapahtuu :)
Vaaran testillä todettu, että jos kirjastotunnus on Ceepos-listassa, vain Ceepos-maksu -painike ja Peruuta-painike ovat näkyvissä maksuja maksettaessa. Jos kirjastotunnusta ei ole Ceepos-listauksessa, maksutilanteessa näkyy vain Hyväksy tai Peruuta-painike, ei Ceeposta ollenkaan.
Lapin testillä toimii samoin kuin Kyytissä, eli toimii.
Myös OUTIssa painikkeet nyt samoin kuin Vaarassa eli ihan toimivalta ratkaisulta näyttää. :)
Koodimuutokset tulivat siis riveille 6-16, eli if-lauseke (1. ja viim. rivi tässä) ja nappirivi (6. tässä):
if (window.location.pathname == '/cgi-bin/koha/members/paycollect.pl' && !window.location.search.includes("WRITEOFF")) {
var ceeposBranches = ['OUPK','OUR','OUHA','OUMA','OUUL','OUOS','OUH','OUKI','OUKS','OUKA','OUPE','UTPK','IIPK','PUPK','VAPK','LUPK'];
if (ceeposBranches.includes($("#logged-in-info-full .logged-in-branch-code").text())) {
console.log("ceeposbranch löytyi");
console.log($("#logged-in-info-full .logged-in-branch-code").text());
$("#payfine .action, #payindivfine .action").find("input").hide().after('<input type="button" id="CeeposMaksu" class="btn btn-primary" style="margin:0px 10px;" value="Ceepos-maksu" onclick="setCeeposPayment($(this))"/>');
if(localStorage.getItem('ceeposOffice')) {
$('#payment_type').val(localStorage.getItem('ceeposOffice'));
}
}
}
Hyväksy-painikkeen piilotus totu tuotantoon 13.2.2024.
Avaan tiketin vielä uudelleen, koska henkilökunta onnistuu vielä saamaan asiakkaan maksut miinukselle. :(
Eli nyt käy vielä niin, kun asiakaspalvelija lähettää maksun Ceepos-kassalle maksettavaksi ja painaa sen jälkeen Maksa maksuja -näytöllä "Poista"-linkkiä, maksut saa poistettua näin asiakkaalta manuaalisesti. Tämän jälkeen lähetetty maksu peritään asiakkaalta Ceeposissa, jolloin maksusta tulee maksukuittaus Kohaan ja asiakkaan maksut menevät miinukselle.
Sori, kun aiemmin en ole edes huomannut, että maksut voi poistaa myös tuosta linkistä. :( Eli saisiko tuon Poista-linkin jotenkin piiloon?
Nuo Maksa ja Poista -välilehdet on tuossa aika turhia, etenkin jos niiden kautta sitten vahinkopoistoja onnistutaan edelleen tekemään.
Tässä olisi CSS, joka piilottaa nuo "kakkosvälilehdet" kokonaan. Peruuttamisen kautta voi siirtyä maksun ja poiston välillä vallan mainiosti.
/* Piilota Maksa-Poista välilehdet Maksusivulta */
body#pat_paycollect ul.nav-pills { display: none; }
Nuo Maksa ja Poista -välilehdet on tuossa aika turhia, etenkin jos niiden kautta sitten vahinkopoistoja onnistutaan edelleen tekemään.
Tässä olisi CSS, joka piilottaa nuo "kakkosvälilehdet" kokonaan. Peruuttamisen kautta voi siirtyä maksun ja poiston välillä vallan mainiosti.
/* Piilota Maksa-Poista välilehdet Maksusivulta */ body#pat_paycollect ul.nav-pills { display: none; }
Kiitos Kassu! Piilotin OUTIn tuotannosta "kakkosvälilehdet" kokonaan. :)
Kiitos, otettiin Vaarassakin käyttöön.
Kehitysehdotukseni
Kun asiakkaan maksu on lähetetty maksurajapintaa käyttäen Kohasta Ceeposiin, olisi erittäin hyvä, että Maksa-näytöllä näkyvä Hyväksy-painike (jolla voi poistaa maksun Kohasta manuaalisesti) menisi "epäaktiiviseksi", jottei virkailija pysty maksun lähetyksen jälkeen enää poistamaan maksua manuaalisesti.
OUTIssa tulee esille tapauksia, jossa virkailija on ensin lähettänyt maksun Kohasta Ceeposiin ja tämän jälkeen poistanut maksun Kohasta Hyväksy-painikkeella. Tämän jälkeen virkailija on veloittanut lähetetyn maksun asiakkaalta Ceeposissa, jolloin maksurajapinta on myös lähettänyt Kohaan tiedon, että maksu on maksettu. Asiakkaan maksut menevät tässä tapauksessa miinukselle maksetun summan verran ja asiakkaan Lainaus- ja Tiedot-sivuilla on huomautus: "Asiakkaan tilillä on hyvitys suuruudeltaan x,xx.
Jotain muuta?
Hyväksy-painike epäaktiiviseksi sen jälkeen, kun maksu on lähetetty Kohasta Ceeposiin käyttäen Ceeposmaksu-painiketta. Tieto asiakkaan Maksut-sivun Tapahtumat-välilehdellä: Tieto asiakkaan Lainaus- ja Tiedot-sivuilla: