Company Closures Events

Inchiderile asa cum sunt ele salvate in company_closure, au un istoric de evenimente stocat in company_closure_event.

Aceste evenimente pot fi si blocante si care dicteaza daca/cand se pot face aceste inchideri.

Cum se inregistreaza un event (exemple)

 

A. La crearea unei inchideri:

$closure = CompanyClosure->find(...)->one();
if($closure){
    $closure->registerEvent(CompanyClosureEvent::$TYPE_CREATED, NULL, NULL, FALSE);
}

B. La modificarea unei note contabile (sa spunem cu id-ul 123):

$closure = CompanyClosure->find(...)->one();
if($closure){
    $closure->registerEvent(CompanyClosureEvent::$TYPE_MODIFIED, CompanyClosureEvent::$RELATED_DATATYPE_ACCOUNTINGNOTE, 123, TRUE);
}

C. La modificarea unei note contabile (id 123) unde am schimbat si data

$closure = CompanyClosure->find(...)->one();
if($closure){
    $closure->registerEvent(CompanyClosureEvent::$TYPE_MODIFIED, CompanyClosureEvent::$RELATED_DATATYPE_ACCOUNTINGNOTE, 123, TRUE, FALSE, '2017-05-10');
}

Ce se intampla la inchideri

La inchideri, daca user-ul face click pe iconul “inchide” :

a. daca nu exista modificari*) in perioada fiscala respectiva atunci intrebam daca face efectiv inchiderile sau daca doar marcheaza ca inchisa

b. daca exista modificari*), atunci face obligatoriu inchiderile (redirect la wizard) si nu doar marcam ca inchisa

*) modificari exista daca

$closure->hasBlockingEvent($date)

unde $date este data pentru care se face verificarea (adica se verifica toate event-urile aparute ulterior acelei date).

ATENTIE! se verifica numai event-urile cu requiresRecomputation>0, iar tu trebuie sa adaugi acest registerEvent() cu requiresRecomputation=1, peste tot unde faci note contabile.

About

Software Development Manager, Architect

Leave a Reply

Your email address will not be published. Required fields are marked *

[TOP]