Emailing Paystubs

Topics brought up by the TimeTrex open source community.
Post Reply
rob
Posts: 4
Joined: Mon Dec 30, 2013 11:09 am

Emailing Paystubs

Post by rob »

Hi,

Is there an easy way to have Timetrex email paystubs?

Thank you,

Rob
shanec
Posts: 416
Joined: Thu Apr 25, 2013 8:22 am

Re: Emailing Paystubs

Post by shanec »

Once logged into TimeTrex employees can find their pay stubs by clicking Payroll -> Pay Stubs.
shaunw
Posts: 7839
Joined: Tue Sep 19, 2006 2:22 pm

Re: Emailing Paystubs

Post by shaunw »

It should be added that once pay stubs are marked as PAID (or the pay period is closed) employees will receive an email notifying them that a pay stub is available for viewing within TimeTrex.

Due to security reasons TimeTrex will not email pay stubs directly to employees.
rob
Posts: 4
Joined: Mon Dec 30, 2013 11:09 am

Re: Emailing Paystubs

Post by rob »

Yes, I know employees can download it, I was just wondering if there was something more automatic.
rob
Posts: 4
Joined: Mon Dec 30, 2013 11:09 am

Re: Emailing Paystubs

Post by rob »

Ok, got it. Security is a good reason.
nth0mth0m
Posts: 32
Joined: Fri Nov 15, 2019 9:39 pm

Re: Emailing Paystubs

Post by nth0mth0m »

Question on this old topic? Does TimeTrex still send emails about available paystubs? If so, which email in employee profiles do the emails get sent to? Are the email settings within timetrex.php.ini need to be setup or does smtp - timetrex@gmail.com work?
shaunw
Posts: 7839
Joined: Tue Sep 19, 2006 2:22 pm

Re: Emailing Paystubs

Post by shaunw »

nth0mth0m wrote: Sun Jan 05, 2020 10:40 am Does TimeTrex still send emails about available paystubs? If so, which email in employee profiles do the emails get sent to? Are the email settings within timetrex.php.ini need to be setup or does smtp - timetrex@gmail.com work?
Yes, emails are sent to the Work Email address in the employees profile be default, however the employee has options under MyAccount -> Preferences to also send emails to their Home Email address too.
nth0mth0m
Posts: 32
Joined: Fri Nov 15, 2019 9:39 pm

Re: Emailing Paystubs

Post by nth0mth0m »

Do I need to edit the timetrex.php.ini file to add my own settings for smtp? I have tried to send a test email by using the "Forgot Password" link but I am not receiving the email.
shaunw
Posts: 7839
Joined: Tue Sep 19, 2006 2:22 pm

Re: Emailing Paystubs

Post by shaunw »

Yes, if you are not receiving emails from TimeTrex you may need to define your own SMTP settings in the timetrex.ini.php file.
nth0mth0m
Posts: 32
Joined: Fri Nov 15, 2019 9:39 pm

Re: Emailing Paystubs

Post by nth0mth0m »

Currently the delivery_method is set to "soap" it tells me that an email has been sent but no email comes through. I've tried changing to "smtp" but then I get a contact administrator error message. How would I go about diagnosing why the emails aren't sending?
shaunw
Posts: 7839
Joined: Tue Sep 19, 2006 2:22 pm

Re: Emailing Paystubs

Post by shaunw »

Try changing it to "mail" instead of "soap", then it will send through your servers local mail system.The TimeTrex log file (if logging is enabled) should provide you all necessary information to troubleshoot further.
nth0mth0m
Posts: 32
Joined: Fri Nov 15, 2019 9:39 pm

Re: Emailing Paystubs

Post by nth0mth0m »

I am still having issues with the system not sending emails. I have put this on the back burner since it isn’t too critical. What steps do I need to take in order to enable logging so that I can paste the output here?
shaunw
Posts: 7839
Joined: Tue Sep 19, 2006 2:22 pm

Re: Emailing Paystubs

Post by shaunw »

Please see this FAQ:
viewtopic.php?f=6&t=89
nth0mth0m
Posts: 32
Joined: Fri Nov 15, 2019 9:39 pm

Re: Emailing Paystubs

Post by nth0mth0m »

Here is the logs:

DEBUG [L0403] [00002ms]: GLOBAL: URI: /api/json/api.php?Class=APIAuthentication&Method=resetPassword&v=2&MessageID=11eac246-4d8f-07e3-8906-720185318096 IP Address: 65.38.133.169
DEBUG [L0404] [00002ms]: GLOBAL: USER-AGENT: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
DEBUG [L0405] [00002ms]: GLOBAL: Version: 12.0.2 (PHP: v7.3.11) Edition: 10 Production: 0 Server: 10.0.1.110 OS: LINUX Database: Type: postgres8 Name: timetrex Config: /var/www/html/includes/../timetrex.ini.php Demo Mode: 0
DEBUG [L0353] [00013ms]: TTDate::setTimeZone(): Setting TimeZone: America/Denver
DEBUG [L0185] [00015ms]: GLOBAL: Handling JSON Call To API Factory: APIAuthentication Method: resetPassword Message ID: 11eac246-4d8f-07e3-8906-720185318096
DEBUG [L0235] [00015ms] Array: [Function](): Arguments: (Size: 54)
array(1) {
[0]=>
string(25) "email@outlook.com"
}


DEBUG [L0263] [00016ms]: GLOBAL: No SessionID or calling non-authenticated function...
DEBUG [L0434] [00016ms]: TTi18n::setLocale(): Set Master Locale To: en_US
DEBUG [L0551] [00016ms]: TTi18n::chooseBestLocale(): Using Locale: en_US
DEBUG [L0050] [00016ms]: unauthenticatedInvokeService(): Handling UNAUTHENTICATED JSON Call To API Factory: APIAuthentication Method: resetPassword Message ID: 11eac246-4d8f-07e3-8906-720185318096
DEBUG [L0945] [00017ms]: APIAuthentication::resetPassword(): Email: email@outlook.com
DEBUG [L2460] [00030ms]: Factory::isValid(): Calling preValidate()
DEBUG [L2686] [00032ms] Array: Factory::getDataDifferences(): Calling getDataDifferences()
array(2) {
["password_reset_key"]=>
string(40) "2d5c731b3ac8ba304050b96245816490fc201e65"
["password_reset_date"]=>
string(10) "1594341644"
}


DEBUG [L2467] [00032ms]: Factory::isValid(): Calling Validate()
DEBUG [L2686] [00032ms] Array: Factory::getDataDifferences(): Calling getDataDifferences()
array(2) {
["password_reset_key"]=>
string(40) "2d5c731b3ac8ba304050b96245816490fc201e65"
["password_reset_date"]=>
string(10) "1594341644"
}


DEBUG [L0544] [00034ms]: UserFactory::getCurrentUserPermissionLevel(): Current User Permission Level: 100
DEBUG [L0817] [00082ms] Array: UserFactory::isUniqueUserName(): Unique User Name: ncepeda
string(36) "11ea082e-0ad6-4b70-b7fc-4b3d87dac24d"


DEBUG [L1339] [00083ms] Array: UserFactory::isUniqueEmployeeNumber(): Unique Employee Number: 1
string(36) "11ea082e-0ad6-4b70-b7fc-4b3d87dac24d"


DEBUG [L0544] [00086ms]: UserFactory::getCurrentUserPermissionLevel(): Current User Permission Level: 100
DEBUG [L0544] [00135ms]: UserFactory::getCurrentUserPermissionLevel(): Current User Permission Level: 100
DEBUG [L2108] [00199ms]: UserFactory::isValidWageForHireDate(): No wage entries exist...
DEBUG [L2354] [00239ms]: Factory::StartTransaction(): StartTransaction(): Transaction: Count: 0 Off: 0 OK: 0
DEBUG [L2473] [00240ms]: Factory::isValid(): Data has already been validated...
DEBUG [L2799] [00240ms]: Factory::Save(): Updating...
DEBUG [L2317] [00248ms]: Factory::getUpdateQuery(): Data changed, set updated date:
DEBUG [L2467] [00250ms]: Factory::isValid(): Calling Validate()
DEBUG [L2354] [00251ms]: Factory::StartTransaction(): StartTransaction(): Transaction: Count: 1 Off: 1 OK: 1
DEBUG [L2745] [00251ms]: Factory::Save(): Calling preSave()
DEBUG [L2473] [00251ms]: Factory::isValid(): Data has already been validated...
DEBUG [L2787] [00251ms]: Factory::Save(): Insert ID: 05aa0b9f-f73e-10c2-e56f-4b3d87dac24d Table: system_log
DEBUG [L2329] [00251ms]: Factory::getInsertQuery(): Insert
DEBUG [L2380] [00253ms]: Factory::CommitTransaction(): CommitTransaction(): Transaction: Count: 1 Off: 2
DEBUG [L0158] [00254ms]: LogDetailFactory::addLogDetail(): System Log ID: 05aa0b9f-f73e-10c2-e56f-4b3d87dac24d Class: UserListFactory
DEBUG [L0426] [00254ms]: UserFactory::setCompany(): Company ID: 11ea082d-f389-d3c0-ac07-4b3d87dac24d
DEBUG [L0445] [00254ms]: UserFactory::setLegalEntity(): Legal Entity ID: 11ea082d-f3a2-7ea0-ae6f-4b3d87dac24d
DEBUG [L0544] [00254ms]: UserFactory::getCurrentUserPermissionLevel(): Current User Permission Level: 100
DEBUG [L1441] [00260ms]: UserFactory::setDefaultJob(): Default Job ID: 00000000-0000-0000-0000-000000000000
DEBUG [L1462] [00260ms]: UserFactory::setDefaultJobItem(): Default Job Item ID: 00000000-0000-0000-0000-000000000000
DEBUG [L0893] [00261ms]: TTDate::parseDateTime(): Custom Date Match Failed... Falling back to strtotime. Date String: 2019-12-28 Date Format: d-M-y
DEBUG [L2207] [00261ms]: UserFactory::setCurrency(): Currency ID: 11ea082d-f390-5610-abd4-4b3d87dac24d
DEBUG [L0491] [00263ms]: LogDetailFactory::addLogDetail(): Logged detail records in: 0.0092909336090088
DEBUG [L2841] [00263ms]: Factory::Save(): Calling postSave()
DEBUG [L2686] [00263ms] Array: Factory::getDataDifferences(): Calling getDataDifferences()
array(4) {
["password"]=>
NULL
["password_reset_key"]=>
string(40) "2d5c731b3ac8ba304050b96245816490fc201e65"
["password_reset_date"]=>
string(10) "1594341644"
["updated_date"]=>
string(10) "1594341644"
}


DEBUG [L0356] [00263ms]: Factory::removeCache(): Attempting to remove cache: 11ea082e-0ad6-4b70-b7fc-4b3d87dac24d
DEBUG [L0370] [00263ms]: Factory::removeCache(): Removing cache: 11ea082e-0ad6-4b70-b7fc-4b3d87dac24d Group Id: users
DEBUG [L0356] [00263ms]: Factory::removeCache(): Attempting to remove cache: 11ea082e-0ad6-4b70-b7fc-4b3d87dac24d
DEBUG [L0370] [00263ms]: Factory::removeCache(): Removing cache: 11ea082e-0ad6-4b70-b7fc-4b3d87dac24d Group Id: user_preference
DEBUG [L3898] [00265ms]: UserFactory::postSave(): Permission Group is set...
DEBUG [L3903] [00267ms]: UserFactory::postSave(): Already assigned to a Permission Group...
DEBUG [L3953] [00275ms]: UserFactory::postSave(): Pay Period Schedule is set: 11ea0830-37f9-b710-9195-4b3d87dac24d
DEBUG [L3963] [00279ms]: UserFactory::postSave(): Already assigned to this Pay Period Schedule...
DEBUG [L4113] [00286ms]: UserFactory::postSave(): Setting Tags...
DEBUG [L2375] [00291ms]: Factory::CommitTransaction(): CommitTransaction(): Final Commit... Transaction: Count: 1 Off: 1 OK: 1
DEBUG [L2467] [00299ms]: Factory::isValid(): Calling Validate()
DEBUG [L2354] [00299ms]: Factory::StartTransaction(): StartTransaction(): Transaction: Count: 0 Off: 0 OK: 1
DEBUG [L2745] [00299ms]: Factory::Save(): Calling preSave()
DEBUG [L2473] [00299ms]: Factory::isValid(): Data has already been validated...
DEBUG [L2787] [00300ms]: Factory::Save(): Insert ID: 05aa0b9f-f749-fbd9-ccfd-4b3d87dac24d Table: system_log
DEBUG [L2329] [00300ms]: Factory::getInsertQuery(): Insert
DEBUG [L2375] [00301ms]: Factory::CommitTransaction(): CommitTransaction(): Final Commit... Transaction: Count: 1 Off: 1 OK: 1
DEBUG [L0102] [00307ms]: TTLog::addEntry(): LogDetail Disabled... Object ID: 11ea082e-0ad6-4b70-b7fc-4b3d87dac24d Action ID: 500 Table: users Description: Employee Password Reset By: 65.38.133.169 User ID: 00000000-0000-0000-0000-000000000000
DEBUG [L2199] [00307ms]: Misc::getEmailLocalPart(): No Email Local Part set, falling back to default...
DEBUG [L2181] [00307ms]: Misc::getEmailDomain(): No From Email Domain set, falling back to regular hostname...
DEBUG [L0288] [00308ms] Array: TTMail::Send(): Attempting to send email To:
string(45) ""Nicholas Cepeda" <email@outlook.com>"


DEBUG [L0302] [00308ms]: TTMail::Send(): Sending Email: Body Size: 768 Method: soap To:
DEBUG [L0305] [00308ms]: TTMail::Send(): Not in production mode, not sending emails...
DEBUG [L0964] [00308ms]: APIAuthentication::resetPassword(): ERROR: Unable to send password reset email, perhaps user record is invalid?
DEBUG [L1222] [00308ms]: Validator::Error(): Validation Error: Label: email Value: "0" Msg: Unable to reset password, please contact your administrator for more information
DEBUG [L0986] [00308ms]: APIAuthentication::resetPassword(): Reset Password Failed! Attempt: 1
DEBUG [L0504] [00308ms] Array: APIFactory::returnHandler(): returnHandler v2 ERROR: 0
array(2) {
["api_retval"]=>
bool(false)
["api_details"]=>
array(7) {
["code"]=>
string(10) "VALIDATION"
["description"]=>
string(12) "INVALID DATA"
["record_details"]=>
array(3) {
["total"]=>
int(1)
["valid"]=>
int(0)
["invalid"]=>
int(1)
}
["user_generic_status_batch_id"]=>
bool(false)
["request"]=>
bool(false)
["pager"]=>
bool(false)
["details"]=>
array(1) {
["error"]=>
array(1) {
["email"]=>
array(1) {
[0]=>
string(80) "Unable to reset password, please contact your administrator for more information"
}
}
}
}
}


DEBUG [L0091] [00309ms]: ProgressBar::error(): error: '11eac246-4d8f-07e3-8906-720185318096 Key: 11eac246-4d8f-07e3-8906-720185318096(1594341780.1451) Message: INVALID DATA
DEBUG [L0270] [00309ms]: GLOBAL: Server Response Time: 0.30879211425781
shaunw
Posts: 7839
Joined: Tue Sep 19, 2006 2:22 pm

Re: Emailing Paystubs

Post by shaunw »

The issue is here:

Code: Select all

TTMail::Send(): Not in production mode, not sending emails...
You need to change "production" to true in your timerex.ini.php, otherwise its in development mode and will never send emails.
nth0mth0m
Posts: 32
Joined: Fri Nov 15, 2019 9:39 pm

Re: Emailing Paystubs

Post by nth0mth0m »

When I am not in production mode, I receive a message stating the the email has been send; however, I don;t truly get the email. I checked junk, spam, etc.... I couldn't find error logs in this circumstance.
shaunw
Posts: 7839
Joined: Tue Sep 19, 2006 2:22 pm

Re: Emailing Paystubs

Post by shaunw »

nth0mth0m wrote: Mon Jul 13, 2020 10:52 am When I am not in production mode, I receive a message stating the the email has been send; however, I don;t truly get the email. I checked junk, spam, etc.... I couldn't find error logs in this circumstance.
Emails are only sent when production=true in the timetrex.ini.php file.
nth0mth0m
Posts: 32
Joined: Fri Nov 15, 2019 9:39 pm

Re: Emailing Paystubs

Post by nth0mth0m »

Sorry about that, got my language all mixed up. When I’m in production mode and I attempt to password reset, I get a message that states that a password reset link has been sent; however, I am not actually grtting the email.
shaunw
Posts: 7839
Joined: Tue Sep 19, 2006 2:22 pm

Re: Emailing Paystubs

Post by shaunw »

You will need to attach a copy of the TimeTrex log file when you the password reset request is made then.
nth0mth0m
Posts: 32
Joined: Fri Nov 15, 2019 9:39 pm

Re: Emailing Paystubs

Post by nth0mth0m »

Apologies for the delay in response. I do not get logs in the file when i attempt to sent password reset link. Should I be making adjustments to php.ini file so that I can get logs that are useful?
nth0mth0m
Posts: 32
Joined: Fri Nov 15, 2019 9:39 pm

Re: Emailing Paystubs

Post by nth0mth0m »

Please disregard. It appears that with the newest update the issue has resolved itself.
Post Reply