Текущее время: Пт, мар 29 2024, 17:09

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Межрасчеты отпуска/увольнения
СообщениеДобавлено: Вт, сен 06 2016, 14:11 
Начинающий
Начинающий

Зарегистрирован:
Пт, окт 14 2011, 14:51
Сообщения: 23
Тут наткнулся, что если в месяце приема отпуск то, если считать зп, то идет расчет по среднему. Во время межрасчета того же самого отпуска расчет идет из оклада.
Кто-то сталкивался с подобным?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Межрасчеты отпуска/увольнения
СообщениеДобавлено: Вт, сен 06 2016, 14:29 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, май 30 2006, 08:34
Сообщения: 1900
В системе не смотрел, но звучит логично. Пока нет ни одного регулярного расчета, то при выполнении меж.расчета средний (из текущего месяца) собрать невозможно.

_________________
С уважением.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Межрасчеты отпуска/увольнения
СообщениеДобавлено: Вт, сен 06 2016, 15:24 
Начинающий
Начинающий

Зарегистрирован:
Пт, окт 14 2011, 14:51
Сообщения: 23
calm написал(а):
В системе не смотрел, но звучит логично. Пока нет ни одного регулярного расчета, то при выполнении меж.расчета средний (из текущего месяца) собрать невозможно.

Неа, не логично. Там целый механизм придуман, чтобы это работало. Там ruave само запускает hrucalc0, моделирует расчет зп по нормальному и исходя из этого считает средний. Это в теории. Но что-то не срастается...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Межрасчеты отпуска/увольнения
СообщениеДобавлено: Вт, сен 06 2016, 15:58 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, май 30 2006, 08:34
Сообщения: 1900
Точно, было дело.
А что в V_T52OCV и в признаке OCCAL?

_________________
С уважением.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Межрасчеты отпуска/увольнения
СообщениеДобавлено: Вт, сен 06 2016, 16:15 
Начинающий
Начинающий

Зарегистрирован:
Пт, окт 14 2011, 14:51
Сообщения: 23
calm написал(а):
Точно, было дело.
А что в V_T52OCV и в признаке OCCAL?

Интересная идея, но нет. Проблема не в том,что моделирование не запускается, а тест на релевантность режет нужный период в случае межрасчета.
Сразу скажу, что t7ru51av_a тоже настроено. Там галочка текущий период стоит


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Межрасчеты отпуска/увольнения
СообщениеДобавлено: Вт, сен 06 2016, 16:27 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, май 30 2006, 08:34
Сообщения: 1900
Цитата:
а тест на релевантность режет нужный период в случае межрасчета

Посмотрите в отладчике, почему режется.

_________________
С уважением.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Межрасчеты отпуска/увольнения
СообщениеДобавлено: Вт, сен 06 2016, 16:34 
Начинающий
Начинающий

Зарегистрирован:
Пт, окт 14 2011, 14:51
Сообщения: 23
calm написал(а):
Цитата:
а тест на релевантность режет нужный период в случае межрасчета

Посмотрите в отладчике, почему режется.

Ближайшее место, которое вызывает вопросы это кусок кода в ФМ HR_RU_AV_REL_PER
Code:
  ELSEIF ps_aper-occat = cd_occat-vacation.  "OC vacation based on current month
    l_minmax_begda = ps_aper-begda.  "date was prepared by RUAVE
    l_minmax_endda = iv_begab.

Вот он выставляет какие-то даты, равные aper-begda(что у межрасчета отпуска скажем 29 число месяца запросто может быть).
Затем сравнивает, что наш смоделированный месяц не вписывается в интервал с 29 по 29, т.к дата начала моделируемого периода это скажем первое число месяца. И из-за этого период не релевантен. Комментарий о том, что дата подготовлена руаве вообще загадка...следов подготовки че-то не заметил, хотя может еще мало смотрел..


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Межрасчеты отпуска/увольнения
СообщениеДобавлено: Вт, сен 06 2016, 16:57 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, май 30 2006, 08:34
Сообщения: 1900
Code:
    l_minmax_begda = ps_aper-begda.  "date was prepared by RUAVE
    l_minmax_endda = iv_begab.


Мне кажется тут должен получаться период [дата_приёма]-[дата_межрасчета]. Не так?

_________________
С уважением.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Межрасчеты отпуска/увольнения
СообщениеДобавлено: Чт, сен 08 2016, 10:07 
Начинающий
Начинающий

Зарегистрирован:
Пт, окт 14 2011, 14:51
Сообщения: 23
calm написал(а):
Code:
    l_minmax_begda = ps_aper-begda.  "date was prepared by RUAVE
    l_minmax_endda = iv_begab.


Мне кажется тут должен получаться период [дата_приёма]-[дата_межрасчета]. Не так?

На сколько я понял философский смысл этих дат обозначить расчетный период. Ну т.е обычно это год, но для расчета по текущему месяцу просто текущий месяц(точнее скорее как ты говоришь интервал с последней даты приема по конец месяца или может действительно по дату начала отпуска. Тут я уже хз мы должны весь доход за месяц брать или только по дату начала отпуска. Это я еще подумаю)

Я уже даже почти смирился с мыслью о z-ФМ для определения релевантности периодов, где этот случай будет корректно обработан. Меня скорее смущает, что у других все как-то работает, а значит есть мысль, что я что-то упустил


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Межрасчеты отпуска/увольнения
СообщениеДобавлено: Чт, сен 08 2016, 10:19 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Пт, сен 07 2007, 07:53
Сообщения: 1392
Sapher написал(а):
Комментарий о том, что дата подготовлена руаве вообще загадка...следов подготовки че-то не заметил, хотя может еще мало смотрел..

Это происходит в процедуре currm_avera (отдельный прогон для текущего периода, флаг avest-curr = 'X'). Здесь выполняется один прогон обработки по текущему месяцу, предварительно подготовив данные. Прогон - это вызов ФМ HRPY_AVERA_LOOP_AT_MONTH. Перед ним есть код, где выполняется подмена
Code:
    IF aper-occat = cd_occat-vacation OR aper-occat = cd_occat-maternity.
      lv_aperbegda = aper-begda.
      aper-begda+6(2) = '01'.
      if lv_av_endda_month(6) > aper-bondt(6).
        lv_av_endda_month = aper-bondt.
      endif.
    elseif avest-sppe2 = 'X' and lv_av_endda_month(6) > GS_RUAVE_APER-endda(6).
      lv_av_endda_month = GS_RUAVE_APER-endda.
    ENDIF.
а после возврат
Code:
    IF aper-occat = cd_occat-vacation OR aper-occat = cd_occat-maternity.
      aper-begda = lv_aperbegda.
    ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Межрасчеты отпуска/увольнения
СообщениеДобавлено: Чт, сен 08 2016, 10:56 
Начинающий
Начинающий

Зарегистрирован:
Пт, окт 14 2011, 14:51
Сообщения: 23
Вот последнее сообщение реально полезное было.
Подмена не происходит, т.к для вызова LOOP_AT_MONTH передают не сам APER, а ls_aper, который не измененный
Code:
    ls_aper = aper.
    IF aper-occat = cd_occat-vacation OR aper-occat = cd_occat-maternity.
      lv_aperbegda = aper-begda.
      aper-begda+6(2) = '01'.
      if lv_av_endda_month(6) > aper-bondt(6).
        lv_av_endda_month = aper-bondt.
      endif.
    elseif avest-sppe2 = 'X' and lv_av_endda_month(6) > GS_RUAVE_APER-endda(6).
      lv_av_endda_month = GS_RUAVE_APER-endda.
    ENDIF.

    lv_save_aper_pendd = aper-pendd.
    aper-pendd = aper-pendd + 1.   " EHP5.5 trick to do standard adjustment
    CALL FUNCTION 'HRPY_AVERA_LOOP_AT_MONTH'
      EXPORTING
        max_month           = lc_index
        av_endda_month      = lv_av_endda_month
        with_current_period = <wa_51av_a>-current_per
        aper                = ls_aper
        employee_number     = pernr-pernr


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Межрасчеты отпуска/увольнения
СообщениеДобавлено: Вт, июл 16 2019, 12:12 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, мар 16 2011, 23:26
Сообщения: 260
В межрасчете отпуска текущий месяц не проходит проверку релевантности в ФМ HR_RU_AV_REL_PER . Чтобы как-то решить проблему отличия межрасчета отпуска от регулярного расчета отпуска в месяце приема на работу, решил использовать вид оплаты /0A3 , в котором сохраняется средний для отпуска при моделировании регулярного расчета в текущем месяце. В таблице V_T7RU51AV_A задал вид оплаты /0A3 для правила расчета среднего. Чтобы можно было использовать ВО /0A3 в межрасчете , добавил расширение в начало подпрограммы currm_avera :
Code:
  DATA:
    _ls_result type payru_result,
    _update(1) type c.
  FIELD-SYMBOLS:
    <_wa_rgdir> type pc261,
    <_wa_rt>    type pc207.

  if aper-occat = cd_occat-vacation.
    loop at rgdir assigning <_wa_rgdir> where fpper eq aper-paper.
    endloop.

    if <_wa_rgdir> is assigned.
      CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
        EXPORTING
          clusterid      = 'UR'
          employeenumber = pernr-pernr
          sequencenumber = <_wa_rgdir>-seqnr
        CHANGING
          payroll_result = _ls_result.
    endif.

    if sy-subrc = 0.
      clear _update.
      loop at _ls_result-inter-rt assigning <_wa_rt> where lgart eq '/0A3'.
        if <_wa_rt>-apznr ne '01'.
          <_wa_rt>-apznr = '01'.
          _update = 'X'.
          exit.
        endif.
      endloop.

      if _update = 'X'.
        if _ls_result-evp is initial.
          _ls_result-evp = <_wa_rgdir>.
        endif.
        CALL FUNCTION 'PYXX_WRITE_PAYROLL_RESULT'
          EXPORTING
            clusterid      = 'UR'
            employeenumber = pernr-pernr
            sequencenumber = <_wa_rgdir>-seqnr
            payroll_result = _ls_result.
      endif.
    endif.
  endif.
Расширение находит ВО /0A3 в таблице RT регулярного расчета и меняет сплит APZNR на 01 , как в межрасчете отпуска. После такого изменения ставка /0A3 будет выбрана далее в currm_avera , если средний заработок оказался нулевой.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Межрасчеты отпуска/увольнения
СообщениеДобавлено: Вт, июл 16 2019, 17:26 
Начинающий
Начинающий

Зарегистрирован:
Пт, окт 14 2011, 14:51
Сообщения: 23
Я не понял зачем весь этот ужас городить. Выше же описано, что в какой-то новой версии затерли подмену,а она реально необходима. Было достаточно строку ls_aper = aper сдвинуть вниз строчек на 10.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Межрасчеты отпуска/увольнения
СообщениеДобавлено: Ср, июл 17 2019, 09:52 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, мар 16 2011, 23:26
Сообщения: 260
Sapher написал(а):
Я не понял зачем весь этот ужас городить. Выше же описано, что в какой-то новой версии затерли подмену,а она реально необходима. Было достаточно строку ls_aper = aper сдвинуть вниз строчек на 10.
Я могу вносить свой код только в места , предоставленные программистами SAP. В currm_avera это точки расширения в начале и в конце подпрограммы.
Что касается строки ls_aper = aper , то переносить ее не нужно. Достаточно передать в ФМ HRPY_AVERA_LOOP_AT_MONTH aper вместо ls_aper . Переменную ls_aper можно совсем удалить или использовать для восстановления aper после вызова ФМ.
Указанная корректировка стандартного кода не поможет в случае, когда у работника есть увольнение и повторный прием. ФМ HR_RU_AV_REL_PER находит событие увольнения и очищает флаг релевантности месяца повторного приема.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Межрасчеты отпуска/увольнения
СообщениеДобавлено: Ср, июл 17 2019, 10:45 
Начинающий
Начинающий

Зарегистрирован:
Пт, окт 14 2011, 14:51
Сообщения: 23
Secret007 написал(а):
Указанная корректировка стандартного кода не поможет в случае, когда у работника есть увольнение и повторный прием. ФМ HR_RU_AV_REL_PER находит событие увольнения и очищает флаг релевантности месяца повторного приема.

Я такой случай не тестировал, но теоретически проблем быть не должно, если у повторного приема в v_530_e стоит галочка, т.е расчетный период был распилен на два мероприятием повторного приема


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB