Wątek przeniesiony 2021-03-26 17:03 z PHP przez cerrato.

Jak zrobić reset numeracji faktur w zależności od opcji ?

0

Robie faktury i teraz mam taką opcje zrobić, że wybieram sobie numer faktur i okres numeracji. To znaczy, że mogę sobie wybrać numer na fakturze że chcę by był:

  • ciągły - numer zaczyna się od 1 i leci całe życie wzwyż | format: [n]/[Y] | przykład: 2/2021
  • dzienny - numer zaczyna się od 1 i co dzień po godzinie 12 się resetuje | format: [n][d]-[Y] | przykład: 45\22-2021 kolejnego dnia 2\23-2021
  • tygodniowy
  • miesięczny
  • roczny

Jak zrobić taki reset ? czy to ma być CRON czy dopiero przy pobieraniu kolejnego numeru powinienem sprawdzić system numeracji jakoś ostatni numer i okres numeracji i wtedy dopiero resetowac licznik ?

2

W żadnej z tych sytuacji nie musisz ani trzymać licznika, ani wykorzystywać crona - wystarczy coś takiego:

fn wygenerujNumerFaktury():
  if najnowszaFaktura.data == dzisiaj:
    return najnowszaFaktura.id + 1
  else
    return 1

W sytuacji licznika tygodniowego / miesięcznego / ... zmienia się jedynie warunek, np.:

rok(najnowszaFaktura.data) == rok(dzisiaj) && tydzień(najnowszaFaktura.data) == tydzień(dzisiaj)
2

najnowszaFaktura.data == dzisiaj:

Przy czym taka uwaga - pod hasłem "dzisiaj" uwzględniaj datę ustawioną w aplikacji, a nie czas systemowy. Nieraz się w aplikacji przestawia datę, żeby np. wypisać jeszcze jakiś dokument z datą wczorajszą, albo na początku maja dokończyć fakturowanie tematów kwietniowych.

0

Dziękuję za spostrzeżenia bo tak :

  1. aplikacja może mieć różne firmy i każda może mieć faktury cos jak inFakt (ale to do firmy wewnątrz) więc muszę trzymać numery kolejne faktur osobno, nie ma z tym problemu w sumie
  2. nie wiedziałem, że przestawiają daty i chciałem dać date systemową ale w takim razie zrobie żeby brał pod uwagę datę wybrana w aplikacji dla danego działu tam.
2

aplikacja może mieć różne firmy

A do tego każda firma może mieć wiele rejestrów - na przykład

  • F/DET - sprzedaż detaliczna
  • F/HRT - sprzedaż hurtowa
  • F/SRW - uslugi serwisowe
  • F/USŁ - faktury za usługi
  • F/UE - sprzedaż na rzecz podmiotów zagranicznych

i tak dalej. I każdy z tych rejestrów może mieć inny schemat numeracji.

Ponadto - poza fakturami, w firmie masz pełno innych dokumentów. Takie podstawowe minimum to:

  • KP i KW - czyli dokumenty kasowe
  • BP i BW - j/w ale bankowe
  • WZ i PZ - czyli przyjęcia i wydania (magazynówka)
  • MM - przesunięcia międzymagazynowe
  • FZ - faktury zakupowe (je także trzeba ewidencjonować. Mozna rozbić na wiele rejestrów zakupów, chociażby na towary handlowe oraz faktury kosztowe)
  • KZ / KF - czyli korekty zakupów oraz sprzedaży

i tak dalej ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1