mojaSymfonia FORUM
https://forum.mix-soft.pl/

Wyciągnięcie dnia i miesiąca z daty dokumentu
https://forum.mix-soft.pl/viewtopic.php?f=2&t=1417
Strona 1 z 1

Autor:  zz [ 2009-11-19, 11:55 ]
Tytuł:  Wyciągnięcie dnia i miesiąca z daty dokumentu

Witam.
Problem jak w temacie (muszę ograniczyć możliwość wystawiania dokumentów do kilku dni wstecz).
Jak wyciągnąć dzień i miesiąc z daty (bieżącej i wystawianego dokumentu)?

Autor:  wrob [ 2009-11-19, 15:07 ]
Tytuł: 

A w jakim programie? :)

Autor:  zz [ 2009-11-19, 15:08 ]
Tytuł: 

HMF 2010

sorry, nie napisałem

Autor:  rafal [ 2009-11-19, 21:26 ]
Tytuł: 

Kod:
//"procsp.sc","Procedury dokumentu sprzedaży","\Procedury\",0,1.0.0,SYSTEM

dispatch msg,xMessages
xMessages = xFactory.NewObject("XMessage")

int Sub OnBeforeInsert(long lId)
   
   dispatch xDk = xFactory.NewObject("BDokumentSp")
   xDk.Load((using "id=%l", lId))

   date dateDok
   date dateDzis

   dateDzis.Today()
   dateDok.FromStr(xDk.DataWystawienia)
      
   if dateDok.DaysUntil(dateDzis) >= 3 then
         msg = xMessages.AddNew()
         msg.tresc = "Data dokumentu odbiega w czasie więcej niż 3 dni."
         msg.status = 0x01
         ShowINFOs("Kontrola poprawności danych dokumentu", "Dane dokumentu mogą być niepoprawne.", 255, 0, xMessages)
      OnBeforeInsert = -6000
   else
      OnBeforeInsert = 0
   endif

EndSub


Przy próbie wystawienia dokumentu powinien pojawić się komunikat:

[center]Obrazek [/center]

Autor:  zz [ 2009-11-23, 09:09 ]
Tytuł: 

Wielkie dzięki.
Ale precyzując pytanie:
potrzebuję tego mechanizmu, żeby zablokować wystawianie dokumentów po 5-tym dniu miesiąca z datą z poprzedniego miesiąca.
Czyli np. 20-go można byłoby wystawić dokument z datą 5-go, ale 6-go żeby już nie można było wystawić dok. z poprzedniego miesiąca.

Autor:  krzysiek [ 2009-11-23, 09:34 ]
Tytuł: 

Doprecyzowanie ok ale ten przykład... ? chcesz by 5-go w miesiącu X mozna było wystawić dokument z datą w miesiącu X-1 a 6-go juz nie.

W tym co wkleił RAFAŁ masz całą gotową procedurę, wystarczy zmienić tylko warunek w niej tak by pasował do tego co chcesz.

Autor:  zz [ 2009-11-24, 09:52 ]
Tytuł: 

OK, mam sposób na sprawdzenie ilości dni wstecz (tak jak błędnie napisałem w temacie).
Ale jak mam sprawdzić miesiąc?
Próbuję analogicznie jak DaysUntil (czyli MonthsUntil) i nic :-|

Autor:  wrob [ 2009-11-24, 12:02 ]
Tytuł: 

MontUntil - to nie ma - ale pokombinuj mozesz zawsze rozbic date jako string i pobrac z niej miesiac (czy tez rok) - a dalej to juz kwestia techniki :)

Autor:  Notos [ 2009-11-24, 13:06 ]
Tytuł: 

Można zrobić na dwóch datach SetLastDayOfMonth() i później Compare()

Autor:  Jarek75 [ 2009-11-27, 10:25 ]
Tytuł: 

W helpie chyba rzeczywiście brakuje tej informacji. Spróbuj GetYear(), GetMonth(), GetDay(). Nie wiem tylko, czy trzeba użyć rekordu Date czy DateExt.

Autor:  zz [ 2010-04-29, 14:45 ]
Tytuł: 

Trochę czasu minęło, ale dopiero teraz chcoałem zastosować ten mechanizm i mam dwa problemy:
1. dodają mi się komunikaty (jak w zał)
2. jeśli w procedurze dok. sprzedaży odwołam wywołanie tego sprawdzania, i tak ono działa do czasu przelogowania
Jak to poprawić?

Załączniki:
komunikaty.JPG
komunikaty.JPG [ 35.02 KiB | Przeglądany 4380 razy ]

Autor:  rafal [ 2010-04-29, 15:46 ]
Tytuł: 

Kod:
  ClearINFOs()

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/