2017-09-08 10:41:21 +00:00
|
|
|
package Pear::LocalLoop::Controller::Api::Organisation;
|
|
|
|
use Mojo::Base 'Mojolicious::Controller';
|
|
|
|
use Mojo::JSON;
|
|
|
|
|
|
|
|
has error_messages => sub {
|
|
|
|
return {
|
2017-09-08 12:00:42 +00:00
|
|
|
entry_period => {
|
2017-09-08 11:15:11 +00:00
|
|
|
required => { message => 'No entry period sent.', status => 400 },
|
|
|
|
},
|
2017-09-08 12:00:42 +00:00
|
|
|
employee_amount => {
|
2017-09-08 11:15:11 +00:00
|
|
|
required => { message => 'No employee amount sent.', status => 400 },
|
|
|
|
},
|
2017-09-08 12:00:42 +00:00
|
|
|
local_employee_amount => {
|
2017-09-08 11:15:11 +00:00
|
|
|
required => { message => 'No local employee amount sent.', status => 400 },
|
|
|
|
},
|
2017-09-08 12:00:42 +00:00
|
|
|
gross_payroll => {
|
2017-09-08 11:15:11 +00:00
|
|
|
required => { message => 'No gross payroll sent.', status => 400 },
|
|
|
|
},
|
2017-09-08 12:00:42 +00:00
|
|
|
payroll_income_tax => {
|
2017-09-08 11:15:11 +00:00
|
|
|
required => { message => 'no payroll income tax sent.', status => 400 },
|
|
|
|
},
|
2017-09-08 12:00:42 +00:00
|
|
|
payroll_employee_ni => {
|
2017-09-08 11:15:11 +00:00
|
|
|
required => { message => 'no payroll employee ni sent.', status => 400 },
|
|
|
|
},
|
2017-09-08 12:00:42 +00:00
|
|
|
payroll_employer_ni => {
|
2017-09-08 11:15:11 +00:00
|
|
|
required => { message => 'no payroll employer ni sent.', status => 400 },
|
|
|
|
},
|
2017-09-08 12:00:42 +00:00
|
|
|
payroll_total_pension => {
|
2017-09-08 11:15:11 +00:00
|
|
|
required => { message => 'no payroll total pension sent.', status => 400 },
|
|
|
|
},
|
2017-09-08 12:00:42 +00:00
|
|
|
payroll_other_benefit => {
|
2017-09-08 11:15:11 +00:00
|
|
|
required => { message => 'no payroll other benefit sent.', status => 400 },
|
|
|
|
},
|
2017-09-08 12:00:42 +00:00
|
|
|
supplier_business_name => {
|
2017-09-08 11:15:11 +00:00
|
|
|
required => { message => 'no supplier business name sent.', status => 400 },
|
|
|
|
},
|
|
|
|
postcode => {
|
|
|
|
required => { message => 'no postcode sent.', status => 400 },
|
|
|
|
postcode => { message => 'postcode must be valid', status => 400 },
|
|
|
|
},
|
2017-09-08 12:00:42 +00:00
|
|
|
monthly_spend => {
|
2017-09-08 11:15:11 +00:00
|
|
|
required => { message => 'no monthly spend sent.', status => 400 },
|
|
|
|
},
|
2017-09-08 12:00:42 +00:00
|
|
|
employee_no => {
|
2017-09-08 11:15:11 +00:00
|
|
|
required => { message => 'no employee no sent.', status => 400 },
|
|
|
|
},
|
2017-09-08 12:00:42 +00:00
|
|
|
employee_income_tax => {
|
2017-09-08 11:15:11 +00:00
|
|
|
required => { message => 'no employee income tax sent.', status => 400 },
|
|
|
|
},
|
2017-09-08 12:00:42 +00:00
|
|
|
employee_gross_wage => {
|
2017-09-08 11:15:11 +00:00
|
|
|
required => { message => 'no employee gross wage sent.', status => 400 },
|
|
|
|
},
|
2017-09-08 12:00:42 +00:00
|
|
|
employee_ni => {
|
2017-09-08 11:15:11 +00:00
|
|
|
required => { message => 'no employee ni sent.', status => 400 },
|
|
|
|
},
|
2017-09-08 12:00:42 +00:00
|
|
|
employee_pension => {
|
2017-09-08 11:15:11 +00:00
|
|
|
required => { message => 'no employee pension sent.', status => 400 },
|
|
|
|
},
|
2017-09-08 12:00:42 +00:00
|
|
|
employee_other_benefit => {
|
2017-09-08 11:15:11 +00:00
|
|
|
required => { message => 'no employee other benefits sent.', status => 400 },
|
2017-09-08 10:41:21 +00:00
|
|
|
},
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
sub post_payroll {
|
|
|
|
my $c = shift;
|
|
|
|
|
|
|
|
my $user = $c->stash->{api_user};
|
|
|
|
|
|
|
|
my $validation = $c->validation;
|
|
|
|
$validation->input( $c->stash->{api_json} );
|
|
|
|
|
|
|
|
return $c->api_validation_error if $validation->has_error;
|
|
|
|
|
|
|
|
my $user_rs = $c->schema->resultset('User')->search({
|
|
|
|
id => { "!=" => $user->id },
|
|
|
|
});
|
|
|
|
|
2017-09-08 12:00:42 +00:00
|
|
|
$validation->required('entry_period');
|
|
|
|
$validation->required('employee_amount');
|
|
|
|
$validation->required('local_employee_amount');
|
|
|
|
$validation->required('gross_payroll');
|
|
|
|
$validation->required('payroll_income_tax');
|
|
|
|
$validation->required('payroll_employee_ni');
|
|
|
|
$validation->required('payroll_employer_ni');
|
|
|
|
$validation->required('payroll_total_pension');
|
|
|
|
$validation->required('payroll_other_benefit');
|
2017-09-08 10:41:21 +00:00
|
|
|
|
|
|
|
return $c->api_validation_error if $validation->has_error;
|
|
|
|
|
|
|
|
$c->schema->txn_do( sub {
|
|
|
|
$user->entity->organisation->update({
|
2017-09-08 12:00:42 +00:00
|
|
|
entry_period => $validation->param('entry_period'),
|
2017-09-08 10:41:21 +00:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
return $c->render( json => {
|
|
|
|
success => Mojo::JSON->true,
|
|
|
|
message => 'Submitted Payroll Info Successfully',
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
sub post_supplier {
|
|
|
|
my $c = shift;
|
|
|
|
|
|
|
|
my $user = $c->stash->{api_user};
|
|
|
|
|
|
|
|
my $validation = $c->validation;
|
|
|
|
$validation->input( $c->stash->{api_json} );
|
|
|
|
|
|
|
|
return $c->api_validation_error if $validation->has_error;
|
|
|
|
|
|
|
|
my $user_rs = $c->schema->resultset('User')->search({
|
|
|
|
id => { "!=" => $user->id },
|
|
|
|
});
|
|
|
|
|
2017-09-08 12:00:42 +00:00
|
|
|
$validation->required('entry_period');
|
2017-09-08 11:15:11 +00:00
|
|
|
$validation->required('postcode')->postcode;
|
2017-09-08 12:00:42 +00:00
|
|
|
$validation->required('supplier_business_name');
|
|
|
|
$validation->required('monthly_spend');
|
2017-09-08 10:41:21 +00:00
|
|
|
|
|
|
|
return $c->api_validation_error if $validation->has_error;
|
|
|
|
|
|
|
|
$c->schema->txn_do( sub {
|
|
|
|
$user->entity->organisation->update({
|
2017-09-08 12:00:42 +00:00
|
|
|
entry_period => $validation->param('entry_period'),
|
2017-09-08 10:41:21 +00:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
return $c->render( json => {
|
|
|
|
success => Mojo::JSON->true,
|
2017-09-08 11:15:11 +00:00
|
|
|
message => 'Submitted Supplier Info Successfully',
|
2017-09-08 10:41:21 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
sub post_employee {
|
|
|
|
my $c = shift;
|
|
|
|
|
|
|
|
my $user = $c->stash->{api_user};
|
|
|
|
|
|
|
|
my $validation = $c->validation;
|
|
|
|
$validation->input( $c->stash->{api_json} );
|
|
|
|
|
|
|
|
return $c->api_validation_error if $validation->has_error;
|
|
|
|
|
|
|
|
my $user_rs = $c->schema->resultset('User')->search({
|
|
|
|
id => { "!=" => $user->id },
|
|
|
|
});
|
|
|
|
|
2017-09-08 12:00:42 +00:00
|
|
|
$validation->required('entry_period');
|
|
|
|
$validation->required('employee_no');
|
|
|
|
$validation->required('employee_income_tax');
|
|
|
|
$validation->required('employee_gross_wage');
|
|
|
|
$validation->required('employee_ni');
|
|
|
|
$validation->required('employee_pension');
|
|
|
|
$validation->required('employee_other_benefit');
|
2017-09-08 10:41:21 +00:00
|
|
|
|
|
|
|
return $c->api_validation_error if $validation->has_error;
|
|
|
|
|
|
|
|
$c->schema->txn_do( sub {
|
|
|
|
$user->entity->organisation->update({
|
2017-09-08 12:00:42 +00:00
|
|
|
entry_period => $validation->param('entry_period'),
|
2017-09-08 10:41:21 +00:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
return $c->render( json => {
|
|
|
|
success => Mojo::JSON->true,
|
2017-09-08 11:15:11 +00:00
|
|
|
message => 'Submitted Employee Info Successfully',
|
2017-09-08 10:41:21 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
1;
|