KohaSuomi / koha-plugin-ceepos-integration

(KPCPU) Koha-Ceepos integration - Koha-Ceepos-liitännäinen
GNU General Public License v3.0
0 stars 0 forks source link

Koha-Ceepos-maksurajapintaa käytettäessä Hyväksy-painike epäaktiiviseksi #3

Closed pirliis closed 1 month ago

pirliis commented 1 year ago

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. image Tieto asiakkaan Maksut-sivun Tapahtumat-välilehdellä: image Tieto asiakkaan Lainaus- ja Tiedot-sivuilla: image

PiaKusmin commented 1 year ago

Lapissa samaa ongelmaa. Toivotaan Oulun ehdottamaa korjausta.

pirliis commented 9 months ago

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ä. :(

AnneliO commented 9 months ago

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.

AnneliO commented 8 months ago

Koha-Suomen asiantuntijaryhmä 5.2.2024: Piilotetaan Hyväksy-nappi Ceeposta käyttävistä yksiköistä.

atarnus commented 8 months ago

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ä: image

AnneliO commented 8 months ago

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)

atarnus commented 8 months ago

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))"/>');

atarnus commented 8 months ago

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 ///
pknuuti commented 7 months ago

Onko tätä mahdollisuus testata muillakin testeillä vai testaako Outi yksin?

atarnus commented 7 months ago

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'];

pknuuti commented 7 months ago

ok, minäpä kopioin tuon rimpsun oikeaan muotoon Vaaran testille ja kokeilen, mitä tapahtuu :)

pknuuti commented 7 months ago

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.

LeenaKinnunen commented 7 months ago

Lapin testillä toimii samoin kuin Kyytissä, eli toimii.

pirliis commented 7 months ago

Myös OUTIssa painikkeet nyt samoin kuin Vaarassa eli ihan toimivalta ratkaisulta näyttää. :)

atarnus commented 7 months ago

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'));
      }
    }
  }
pirliis commented 7 months ago

Hyväksy-painikkeen piilotus totu tuotantoon 13.2.2024.

pirliis commented 3 months ago

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?

image

atarnus commented 2 months ago

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; }
pirliis commented 2 months ago

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. :)

pknuuti commented 2 months ago

Kiitos, otettiin Vaarassakin käyttöön.