Zmiana wartości last_cash_id dla billtech_customer_info#82
Open
smiecielica-billtech wants to merge 2 commits intomasterfrom
Open
Zmiana wartości last_cash_id dla billtech_customer_info#82smiecielica-billtech wants to merge 2 commits intomasterfrom
smiecielica-billtech wants to merge 2 commits intomasterfrom
Conversation
| * @return bool | ||
| */ | ||
| private function checkIfCustomerCashIdExists(integer $customerId, integer $cashId): bool | ||
| { |
Contributor
There was a problem hiding this comment.
Ta funkcja nie zwraca bool. Dodałbym castowanie albo poprawił sygnaturę.
| group by bci.customer_id", array($customerId)); | ||
|
|
||
| if ($customerInfo['new_last_cash_id'] > $customerInfo['last_cash_id']) { | ||
| if ($customerInfo['new_last_cash_id'] > $customerInfo['last_cash_id'] || ($customerInfo['new_last_cash_id'] < $customerInfo['last_cash_id'] && !$this->checkIfCustomerCashIdExists($customerId, $customerInfo['last_cash_id']))) { |
Contributor
There was a problem hiding this comment.
Trzeba trochę poprawiać ten kod. Dałbym te warunki pod funkcje pomocnicze o odpowiednich nazwach.
| left join cash ca on ca.customerid = cu.id | ||
| group by bci.customer_id, bci.last_cash_id | ||
| having bci.last_cash_id <= coalesce(max(ca.id), 0);"); | ||
| having bci.last_cash_id != coalesce(max(ca.id), 0);")?: array(); |
Contributor
There was a problem hiding this comment.
Postarałbym się oddzielić SQL od PHP. Chociaż poprzez formatowanie.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Aktualnie w tabeli billtech_customer_info przetrzymujemy pary customer_id | last_cash_id. Niestety ten last_cash_id nie odpowiada realnie rekordowi cash danego użytkownika, tylko najwyższego id na całej tabeli cash w momencie wykonania ostatniej aktualizacji.
Ułatwi to trakowanie aktualizacji u danego usera, bo będzie jasno widać, który cash był ostatni aktualizowany przez wtyczkę i dodatkowo w przypadku ręcznych usuwań (na przykład faktura jest opłacona, ale rekord wpłaty zostaje jednak usunięty ręcznie przez dostawcę) wracamy z cash_id do poprzedniej faktury i dokonujemy przeliczenia (bo wykrywane jest i przeliczany jest bilans).