Created
July 27, 2015 22:07
-
-
Save ddamko/3119e54beaf191b5dff0 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#-------------------------------------------------------------------------------------------------- | |
# | |
# File: app_endco_dental.pl | |
# Version: 1.00 | |
# Date: 20120721 | |
# | |
# COPYRIGHT 2012 e-Tech Solutions, Inc. | |
# | |
# Any unauthorized reproduction or use of this script in part or whole is a violation of copyright | |
# laws and is strictly prohibited. | |
# | |
#-------------------------------------------------------------------------------------------------- | |
package enrollbest::3_0_0::app_endco_dental; | |
use strict; | |
use warnings; | |
return 1; | |
#-------------------------------------------------------------------------------------------------- | |
# | |
# usage: &control_handler($spirit, $dbh, $r, $software, $control) | |
# arguments: $spirit, $dbh, $r, $software, $control | |
# returns: 1 | |
# function: | |
# | |
sub control_handler | |
{ | |
my ($spirit, $dbh, $r, $software, $control) = @_; | |
$spirit->{'debug'} .= '<<strong>control_handler</strong>> - called by:'.join(',', caller).'<div style="padding-left:25px;">'."\n"; | |
$spirit->{'debug'} .= '<strong>action</strong>: '.$spirit->{'fromform'}{'action'}.'<br />'."\n"; | |
my $return_value = 1; | |
my $key_product = $spirit->{'fromform'}{'key_product'} || 0; | |
my $product_id = $spirit->{'fromform'}{'product_id'} || ''; # 'comp_dual_choice'; | |
$spirit->{'debug'} .= 'key_product: '.$key_product.'<br />'."\n"; | |
# unless ($key_product) { | |
# &endg::util::init_product($spirit, $dbh, $software, $control, $product_id); | |
# ($key_product) = $dbh->{$software}->selectrow_array("SELECT key_product FROM products WHERE product_id='comp_dual_choice' and key_site=".$spirit->{'internal'}{'key_site'}.";"); | |
# } | |
if ($spirit->{'fromform'}{'action'} eq 'cancel'){ | |
$spirit->{'screen'} = 'apps'; | |
$spirit->{'debug'} .= 'return screen set to: '.$spirit->{'screen'}.'<br />'."\n"; | |
$spirit->{'fromform'} = {}; | |
} | |
elsif ($spirit->{'fromform'}{'action'} eq 'update') | |
{ | |
if ((&qualify_data($spirit, $dbh, $r, $software, $control)) && ($key_product)) | |
{ | |
my $product_fields = { | |
'status' => '1', | |
'product_id' => '1', | |
'index' => '1', | |
'available' => '1', | |
}; | |
my $exclued_fields = $spirit->{'control_fields'}; | |
foreach my $key (keys %{$spirit->{'fromform'}}) | |
{ | |
next if (defined($exclued_fields->{$key})); | |
next if ($key eq 'key_product'); | |
if (defined($product_fields->{$key})) { | |
if ($key eq 'index') { | |
my $index = $spirit->{'fromform'}{'index'}; | |
my $max_index; | |
my $sql = 'select index from products where '. | |
' key_product='.$dbh->{$software}->quote($key_product). | |
' and key_site='.$spirit->{'internal'}{'key_site'}.';'; | |
my ($original_index) = $dbh->{$software}->selectrow_array($sql); | |
if ($index eq 'move_to_end'){ | |
$sql = 'select max (index) from products where '. | |
' key_site='.$spirit->{'internal'}{'key_site'}.';'; | |
($max_index) = $dbh->{$software}->selectrow_array($sql); | |
$spirit->{'debug'} .= 'max_index: '.$max_index.'<br />'."\n"; | |
# move existing indexes down one that were above our original_index | |
$sql = 'update products set index=(index - 1) where index >'.$original_index. | |
' and key_product <> '.$key_product. | |
' and key_site='.$spirit->{'internal'}{'key_site'}. | |
';'; | |
$spirit->{'debug'} .= 'make a space at he end for new max index sql: '.$sql.'<br />'."\n"; | |
$dbh->{$software}->do($sql); | |
# Fill the hole. Update our product with the new index | |
$sql = 'update products set index='.$max_index.' where key_product='.$key_product. | |
' and key_site='.$spirit->{'internal'}{'key_site'}.';'; | |
$spirit->{'debug'} .= 'update product index sql: '.$sql.'<br />'."\n"; | |
$dbh->{$software}->do($sql); | |
} | |
else { | |
# move existing indexes up one to make a hole | |
$sql = 'update products set index=(index + 1) where index >='.$index. | |
# ' and key_product <> '.$key_product. | |
' and key_site='.$spirit->{'internal'}{'key_site'}.';'; | |
$spirit->{'debug'} .= 'make a hole index sql: '.$sql.'<br />'."\n"; | |
$dbh->{$software}->do($sql); | |
# Fill the hole. Update our product with the new index | |
$sql = 'update products set index='.$index.' where key_product='.$key_product. | |
' and key_site='.$spirit->{'internal'}{'key_site'}.';'; | |
$spirit->{'debug'} .= 'update product index sql: '.$sql.'<br />'."\n"; | |
$dbh->{$software}->do($sql); | |
# move existing indexes down one that were above our original_index | |
$sql = 'update products set index=(index - 1) where index >'.$original_index. | |
' and key_product <> '.$key_product. | |
' and key_site='.$spirit->{'internal'}{'key_site'}. | |
';'; | |
$spirit->{'debug'} .= 'clear empty space index sql: '.$sql.'<br />'."\n"; | |
$dbh->{$software}->do($sql); | |
} | |
} | |
else { | |
my $value = $spirit->{'fromform'}{$key}; | |
my $record = { | |
$key => $value, | |
}; | |
my $table = 'products'; | |
unless (&endg::util::save_record($spirit, $dbh, $software, $table, $record, $key_product)){ | |
$spirit->{'message'}{'error'}{$software.'::'.$control} .= '<li>Ouch, we had a problem updating the product '.$key.'</li>'."\n"; | |
} | |
} | |
} | |
else { | |
my $attribute_name = $key; | |
my $attribute_value = $spirit->{'fromform'}{$key}; | |
my $attribute_type = 'sob'; | |
$attribute_type = 'app' if ($spirit->{'fromform'}{'misc1'} eq 'application'); | |
$attribute_type = 'restriction' if ($spirit->{'fromform'}{'misc1'} eq 'restrictions'); | |
$attribute_type = 'admin' if ($attribute_name eq 'note'); | |
my $record = { 'key_product' => $key_product, | |
'attribute_name' => $attribute_name, | |
'attribute_value' => $attribute_value, | |
'attribute_type' => $attribute_type, | |
}; | |
my $table = 'product_attributes'; | |
if (&endg::util::save_record($spirit, $dbh, $software, $table, $record)) | |
{ | |
# $spirit->{'products'}{$product_id}{'sob'}{'title'} | |
$spirit->{'products'}{$product_id}{$attribute_type} = $attribute_value; | |
} | |
else { | |
$spirit->{'message'}{'error'}{$software.'::'.$control} .= '<li>Ouch, we had a problem updating: "'.$attribute_name.'".</li>'."\n"; | |
} | |
} | |
} | |
$spirit->{'message'}{'confirmation'}{$software.'::'.$control} .= '<li>Got it - app settings have been updated.</li>'."\n"; | |
# $spirit->{'screen'} = 'app_comp_dual_choice'; | |
# $spirit->{'fromform'} = {}; | |
} | |
} | |
else | |
{ | |
$spirit->{'debug'} .= 'Unknown action <br />'."\n"; | |
} | |
$spirit->{'debug'} .= '</div></<strong>control_handler</strong>><br />'."\n"; | |
return $return_value; | |
} | |
# | |
#-------------------------------------------------------------------------------------------------- | |
# | |
# usage: &qualify_data($spirit, $dbh) | |
# arguments: $spirit, $dbh | |
# returns: 1 | 0 | |
# function: insure all passed parameters meet minimum needs | |
# | |
sub qualify_data | |
{ | |
my ($spirit, $dbh, $r, $software, $control) = @_; | |
$spirit->{'debug'} .= '<<strong>qualify_data</strong>> - called by:'.join(',', caller).'<div style="padding-left:25px;">'."\n"; | |
my $return_value = 1; | |
if ($spirit->{'fromform'}{'action'} eq 'update') | |
{ | |
if ($spirit->{'fromform'}{'misc1'} eq 'application') | |
{ | |
if ($spirit->{'fromform'}{'premium_1dhmo'} eq '') { | |
$return_value = 0; | |
$spirit->{'message'}{'invalid_entry'}{$software.'::'.$control} .= '<li>DHMO employee can not be blank.</li>'."\n"; | |
} | |
if ($spirit->{'fromform'}{'premium_2dhmo'} eq '') { | |
$return_value = 0; | |
$spirit->{'message'}{'invalid_entry'}{$software.'::'.$control} .= '<li>DHMO plus 1 can not be blank.</li>'."\n"; | |
} | |
if ($spirit->{'fromform'}{'premium_3dhmo'} eq '') { | |
$return_value = 0; | |
$spirit->{'message'}{'invalid_entry'}{$software.'::'.$control} .= '<li>DHMO family can not be blank.</li>'."\n"; | |
} | |
if ($spirit->{'fromform'}{'premium_1indemnity'} eq '') { | |
$return_value = 0; | |
$spirit->{'message'}{'invalid_entry'}{$software.'::'.$control} .= '<li>INDEMNITY employee can not be blank.</li>'."\n"; | |
} | |
if ($spirit->{'fromform'}{'premium_2indemnity'} eq '') { | |
$return_value = 0; | |
$spirit->{'message'}{'invalid_entry'}{$software.'::'.$control} .= '<li>INDEMNITY plus 1 can not be blank.</li>'."\n"; | |
} | |
if ($spirit->{'fromform'}{'premium_3indemnity'} eq '') { | |
$return_value = 0; | |
$spirit->{'message'}{'invalid_entry'}{$software.'::'.$control} .= '<li>INDEMNITY family can not be blank.</li>'."\n"; | |
} | |
} | |
} | |
$spirit->{'debug'} .= '</div></<strong>qualify_data</strong>><br />'."\n"; | |
return $return_value; | |
} | |
# | |
#-------------------------------------------------------------------------------------------------- | |
# | |
# usage: &control_display($spirit, $dbh, $r, $software, $control, $args) | |
# arguments: $spirit, $dbh | |
# returns: html | |
# function: create html for control | |
# | |
sub control_display | |
{ | |
my($spirit, $dbh, $r, $software, $control, $args) = @_; | |
$spirit->{'debug'} .= '<<strong>control_display</strong>> - called by:'.join(',', caller).'<div style="padding-left:25px;">'."\n"; | |
$spirit->{'debug'} .= 'control: '.$control.'<br />'."\n"; | |
if ($args) | |
{ | |
$spirit->{'debug'} .= 'args:<div style="padding-left:25px;">'."\n"; | |
foreach my $arg (keys %{$args}) | |
{ | |
$spirit->{'debug'} .= $arg.': '.$args->{$arg}.'<br />'."\n"; | |
} | |
$spirit->{'debug'} .= '</div>'."\n"; | |
} | |
my $field_count = 0; | |
my $sql; | |
my $sth; | |
my $display; | |
my $key_product; | |
my $product_id = $args->{'product_id'} || ''; | |
($key_product) = $dbh->{$software}->selectrow_array("SELECT key_product FROM products WHERE product_id='".$product_id."' and key_site=".$spirit->{'internal'}{'key_site'}.';'); | |
unless ($key_product) { | |
&enrollbest::3_0_0::util::init_product($spirit, $dbh, $software, $product_id); | |
($key_product) = $dbh->{$software}->selectrow_array("SELECT key_product FROM products WHERE product_id='".$product_id."' and key_site=".$spirit->{'internal'}{'key_site'}.';'); | |
} | |
$spirit->{'internal'}{'js'}{'include'}{'<script type="text/javascript" language="JavaScript1.1" src="/enroll/3_0_0/js/admin_app_edit.js"></script>'} = 1; | |
&enrollbest::3_0_0::util::load_product_attributes($spirit, $dbh, $software, $key_product); | |
$spirit->{'internal'}{'help'}{$control}{'title'} ||= $spirit->{'products'}{$product_id}{'product_name'}.' settings'; | |
$spirit->{'internal'}{'help'}{$control}{'purpose'} ||= 'These screens configure the rates and display of the '.$spirit->{'products'}{$product_id}{'product_name'}.' application.<br />'."\n"; | |
$spirit->{'internal'}{'help'}{$control}{'button'} .= '<strong>update</strong> - update settings.<br />'."\n"; | |
$display .='<div id="control_'.$control.'" class="control">'."\n"; | |
$display .=' <form method="post" action="'.$spirit->{'internal'}{'url_app'}.'" id="'.$control.'" name="'.$control.'">'."\n"; | |
$display .=' <input type="hidden" name="session_id" value="'.$spirit->{'session'}{'session_id'}.'" />'."\n"; | |
$display .=' <input type="hidden" name="screen" value="'.$spirit->{'screen'}.'" />'."\n"; | |
$display .=' <input type="hidden" name="control" value="'.$control.'" />'."\n"; | |
$display .=' <input type="hidden" name="action" value="" />'."\n"; | |
$display .=' <input type="hidden" name="misc1" value="sob" />'."\n"; | |
$display .=' <input type="hidden" name="key_product" value="'.$key_product.'" />'."\n"; | |
$display .=' <input type="hidden" name="product_id" value="'.$product_id.'" />'."\n"; | |
if ($key_product) { | |
$display .=' <h3>product settings</h3>'."\n"; | |
$display .=' <br style="clear:both;" />'."\n"; | |
my @display_elements = (' active ', ' inactive '); | |
my @value_elements = ('active', 'inactive'); | |
if ($spirit->{'internal'}{'administrator'}{'security_level'} < 10) { | |
push @display_elements, 'disabled'; | |
push @value_elements, 'disabled'; | |
$display .= '<div class="fact_box"><div class="admin-icon"></div>'."\n"; | |
$display .= ' As a super administrator,<br>'."\n"; | |
$display .= ' you may disable this application, which will make it unavailable to this account by selecting: "disable".'."\n"; | |
$display .= '</div>'."\n"; | |
} | |
my $name = 'status'; | |
my $display_name = 'status'; | |
if ($spirit->{'products'}{$product_id}{'key_product'}) { | |
$spirit->{'products'}{$product_id}{'status'} ||= 'disabled'; | |
$field_count ++; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>'.$display_name.'</strong> - Enable/disable product.<br />'."\n"; | |
$display .= &endg::util::display_dropdown($spirit, $control, $field_count, $name, $display_name, $spirit->{'product'}{'property'}{'status'}, \@value_elements, \@display_elements); | |
$display .=' <div class="hint indent">add or remove a product from your statment of benefits list. Setting a product to "inactive" does not delete any enrollments.</div>'."\n"; | |
} | |
else { | |
$display .= $display_name; | |
} | |
$display .=' <br style="clear:both;" />'."\n"; | |
# pre-tax | |
$name = 'pre-tax'; | |
$display_name = 'pre-tax'; | |
@display_elements = (' yes ', ' no '); | |
@value_elements = ('yes', 'no'); | |
if ($spirit->{'products'}{$product_id}{'key_product'}) { | |
$spirit->{'products'}{$product_id}{'sob'}{'pre-tax'} ||= 'no'; | |
$field_count ++; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>'.$display_name.'</strong> - set product pre-tax eligability. Note: This option is not used on all statement of benefit configurations.<br />'."\n"; | |
$display .= &endg::util::display_dropdown($spirit, $control, $field_count, $name, $display_name, $spirit->{'products'}{$product_id}{'sob'}{'pre-tax'}, \@value_elements, \@display_elements); | |
$display .=' <div class="hint indent">set product pre-tax eligability. Note: This option is not used on all statement of benefit configurations.</div>'."\n"; | |
} | |
else { | |
$display .= $display_name; | |
} | |
# $display .=' <br style="clear:both;" />'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
$display .=qq^ <h3>statment of benefits</h3>^."\n"; | |
my $product_count = scalar keys %{ $spirit->{'products'} }; | |
if ($product_count > 0) { | |
my @display_elements; | |
my @value_elements; | |
my %product_order; | |
foreach my $product_id (keys %{$spirit->{'products'}}) { | |
$product_order{$spirit->{'products'}{$product_id}{'index'}} = $spirit->{'products'}{$product_id}{'product_id'}; | |
} | |
foreach my $product_index (sort { $a <=> $b } keys %product_order) { | |
if ($spirit->{'products'}{ $product_order{$product_index} }{'status'} ne 'disabled') { | |
my $display_name = $spirit->{'products'}{$product_order{$product_index}}{'sob'}{'summary'} || $product_order{$product_index}; | |
push @display_elements, $display_name; | |
push @value_elements, $product_index; | |
} | |
} | |
push @display_elements, 'move to end'; | |
push @value_elements, 'move_to_end'; | |
my $name = 'index'; | |
my $display_name = 'show product before'; | |
if ($spirit->{'products'}{$product_id}{'key_product'}) { | |
$spirit->{'products'}{$product_id}{'index'} ||= $product_count; | |
$field_count ++; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>'.$display_name.'</strong> - Move product up or down the list of available products shown on the SOB.<br />'."\n"; | |
$display .= &endg::util::display_dropdown($spirit, $control, $field_count, $name, $display_name, $spirit->{'product'}{'property'}{'index'}, \@value_elements, \@display_elements); | |
$display .=' <div class="hint indent">set the order in which products are listed on the statement of benefits.</div>'."\n"; | |
} | |
# $display .=' <br style="clear:both;" />'."\n"; | |
} | |
$display .=' <div class="spacer"></div>'."\n"; | |
# $display .=' <br style="clear:both;" />'."\n"; | |
# title | |
$field_count ++; | |
$spirit->{'products'}{$product_id}{'sob'}{'title'} ||= ''; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>title</strong> - Product title to be shown on the statement of benefits.<br />'."\n"; | |
$display .=qq^ <label for="title" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">title:</label>^."\n"; | |
$display .=' <input type="text" name="title" id="title" class="form_box" size="40" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'sob'}{'title'}).'" />'."\n"; | |
$display .=' <div class="hint indent">product title shown on the statement of benefits.</div>'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
# summary | |
$field_count ++; | |
$spirit->{'products'}{$product_id}{'sob'}{'summary'} ||= ''; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>summary</strong> - Product summary to be shown on the statement of benefits product summary and emails.<br />'."\n"; | |
$display .=qq^ <label for="title" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">summary:</label>^."\n"; | |
$display .=' <input type="text" name="summary" id="summary" class="form_box" size="40" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'sob'}{'summary'}).'" />'."\n"; | |
$display .=' <div class="hint indent">product summary shown on the statement of benefits summary and emails.</div>'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
# brief_description | |
$field_count ++; | |
$spirit->{'products'}{$product_id}{'sob'}{'brief_description'} ||= ''; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>brief description</strong> - Provide a brief product description to be shown on the statement of benefits.<br />'."\n"; | |
$display .=qq^ <label for="brief_description" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">brief description:</label>^."\n"; | |
$display .=' <textarea name="brief_description" id="brief_description" rows="5" cols="75">'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'sob'}{'brief_description'}).'</textarea>'."\n"; | |
$display .=' <div class="hint indent">product description shown on the statement of benefits.</div>'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
# learn_more_link | |
$field_count ++; | |
$spirit->{'products'}{$product_id}{'sob'}{'learn_more_link'} ||= ''; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>learn more links</strong> - Create a learn more link.<br />'."\n"; | |
$display .=qq^ <label for="learn_more_link" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">learn more link:</label>^."\n"; | |
$display .=' <input type="text" name="learn_more_link" id="learn_more_link" size="75" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'sob'}{'learn_more_link'}).'" />'."\n"; | |
$display .=' <div class="hint indent">exp: "../enroll/forms/product_description.pdf"</div>'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
# alt_link # this is shown instead of learn_more_link | |
$field_count ++; | |
$spirit->{'products'}{$product_id}{'sob'}{'alt_link'} ||= ''; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>brief description</strong> - Provide an alternate link or HTML to be shown on the statement of benefits.<br />'."\n"; | |
$display .=qq^ <label for="alt_link" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">alternate link:</label>^."\n"; | |
$display .=' <textarea name="alt_link" id="brief_description" rows="5" cols="75">'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'sob'}{'alt_link'}).'</textarea>'."\n"; | |
$display .=' <div class="hint indent">Alternate link/html shown on the statement of benefits.</div>'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
# img image | |
$field_count ++; | |
$spirit->{'products'}{$product_id}{'sob'}{'image'} ||= ''; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>brief description</strong> - Provide a brief product description to be shown on the statement of benefits.<br />'."\n"; | |
$display .=qq^ <label for="image" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">image:</label>^."\n"; | |
$display .=' <input type="text" name="image" id="image" size="75" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'sob'}{'image'}).'" />'."\n"; | |
$display .=' <div class="hint indent">exp: "<img src="/demo/graphics/logo_product.png" align="right" border="0" alt="product logo" />"</div>'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
# my $app = 'lcoa_legal_club'; | |
# √ (title) my $full_name = 'Legal Services'; | |
# √ (description) my $description = 'Legal club is a nationwide discount legal referral service providing free and discounted legal care for you, your spouse, and your children.'; | |
# my $learn_more_link = '../enroll/forms/highlights.pdf'; | |
# my $alt_link = ''; | |
# my $img = ' <img src="/demo/graphics/logo_legalclub.png" align="right" border="0" alt="Legal Club" />'; | |
$display .=' <div class="spacer"></div>'."\n"; | |
$display .=' <h3>admin notes</h3>'."\n"; | |
$display .=' <div class="spacer"> </div>'."\n"; | |
# note | |
$field_count ++; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>note</strong> - Set an internal note.<br />'."\n"; | |
$display .=qq^ <label for="note" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">note:</label>^."\n"; | |
$display .=' <textarea name="note" id="note" rows="5" cols="60">'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'admin'}{'note'}).'</textarea>'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
$display .=' <div class="button_bar">'."\n"; | |
$display .=' <a href="'."javascript:update_form('".$control."','cancel');".'" class="button">cancel</a>'."\n"; | |
$display .=' <a href="'."javascript:update_form('".$control."','update');".'" class="button primary">update</a>'."\n"; | |
$display .=' </div>'."\n"; | |
} | |
else { | |
$display .=' <div style="margin:50px;">'."\n"; | |
$display .=' Ouch! We had a problem loading the product. :('."\n"; | |
$display .=' </div>'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
} | |
$display .=' </form>'."\n"; | |
$display .='</div>'."\n"; | |
&display_application($spirit, $dbh, $r, $software, $control, $key_product, $product_id, $args); | |
&display_restrictions($spirit, $dbh, $r, $software, $control, $key_product, $product_id, $args); | |
$spirit->{'tags'}{'control'}{$software.'::'.$control}{'output'} = $display; | |
$spirit->{'debug'} .= '</div></<strong>control_display</strong>><br />'."\n"; | |
return 1; | |
} | |
# | |
#-------------------------------------------------------------------------------------------------- | |
# | |
# usage: &display_application($spirit, $dbh, $r, $software, $control, $key_product, $product_id, $args) | |
# arguments: $spirit, $dbh | |
# returns: html | |
# function: create html for control | |
# | |
sub display_application | |
{ | |
my($spirit, $dbh, $r, $software, $control, $key_product, $product_id, $args) = @_; | |
$spirit->{'debug'} .= '<<strong>display_application</strong>> - called by:'.join(',', caller).'<div style="padding-left:25px;">'."\n"; | |
$spirit->{'debug'} .= 'control: '.$control.'<br />'."\n"; | |
if ($args) | |
{ | |
$spirit->{'debug'} .= 'args:<div style="padding-left:25px;">'."\n"; | |
foreach my $arg (keys %{$args}) | |
{ | |
$spirit->{'debug'} .= $arg.': '.$args->{$arg}.'<br />'."\n"; | |
} | |
$spirit->{'debug'} .= '</div>'."\n"; | |
} | |
my $field_count = 0; | |
my $sql; | |
my $sth; | |
my $display; | |
$display .='<div id="control_'.$control.'_application" class="control">'."\n"; | |
$display .=' <form method="post" action="'.$spirit->{'internal'}{'url_app'}.'" id="'.$control.'_application" name="'.$control.'_application">'."\n"; | |
$display .=' <input type="hidden" name="session_id" value="'.$spirit->{'session'}{'session_id'}.'" />'."\n"; | |
$display .=' <input type="hidden" name="screen" value="'.$spirit->{'screen'}.'" />'."\n"; | |
$display .=' <input type="hidden" name="control" value="'.$control.'" />'."\n"; | |
$display .=' <input type="hidden" name="action" value="" />'."\n"; | |
$display .=' <input type="hidden" name="misc1" value="application" />'."\n"; | |
$display .=' <input type="hidden" name="key_product" value="'.$key_product.'" />'."\n"; | |
$display .=' <input type="hidden" name="product_id" value="'.$product_id.'" />'."\n"; | |
if ($key_product) { | |
$display .=' <div class="spacer"></div>'."\n"; | |
$display .=' <h3>premium levels - DHMO</h3>'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
# premium_1dhmo | |
$field_count ++; | |
$spirit->{'products'}{$product_id}{'app'}{'premium_1dhmo'} ||= '12.30'; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>DHMO employee</strong> - Typically $3.50.<br />'."\n"; | |
$display .=qq^ <label for="premium_1dhmo" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">employee:</label>^."\n"; | |
$display .=' <input type="text" name="premium_1dhmo" id="premium_1dhmo" class="form_box" size="10" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'app'}{'premium_1dhmo'}).'" />'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
# premium_2dhmo | |
$field_count ++; | |
$spirit->{'products'}{$product_id}{'app'}{'premium_2dhmo'} ||= '20.82'; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>DHMO plus 1</strong> - Typically $4.36.<br />'."\n"; | |
$display .=qq^ <label for="premium_2dhmo" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">plus 1:</label>^."\n"; | |
$display .=' <input type="text" name="premium_2dhmo" id="premium_2dhmo" class="form_box" size="10" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'app'}{'premium_2dhmo'}).'" />'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
# premium_3dhmo | |
$field_count ++; | |
$spirit->{'products'}{$product_id}{'app'}{'premium_3dhmo'} ||= '28.84'; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>DHMO family</strong> - Typically $6.58.<br />'."\n"; | |
$display .=qq^ <label for="premium_3dhmo" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">family:</label>^."\n"; | |
$display .=' <input type="text" name="premium_3dhmo" id="premium_3dhmo" class="form_box" size="10" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'app'}{'premium_3dhmo'}).'" />'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
# plan_code_dhmo | |
$field_count ++; | |
$spirit->{'products'}{$product_id}{'app'}{'plan_code_dhmo'} ||= 'SEL15X'; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>plan code</strong> - default SEL15X.<br />'."\n"; | |
$display .=qq^ <label for="plan_code_dhmo" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">plan code:</label>^."\n"; | |
$display .=' <input type="text" name="plan_code_dhmo" id="plan_code_dhmo" class="form_box" size="10" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'app'}{'plan_code_dhmo'}).'" />'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
# group_code_dhmo | |
$field_count ++; | |
$spirit->{'products'}{$product_id}{'app'}{'group_code_dhmo'} ||= 'CP6071'; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>group code</strong> - default CP6071.<br />'."\n"; | |
$display .=qq^ <label for="group_code_dhmo" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">group code:</label>^."\n"; | |
$display .=' <input type="text" name="group_code_dhmo" id="group_code_dhmo" class="form_box" size="10" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'app'}{'group_code_dhmo'}).'" />'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
$display .=' <h3>premium levels - INDEMNITY</h3>'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
# premium_1indemnity | |
$field_count ++; | |
$spirit->{'products'}{$product_id}{'app'}{'premium_1indemnity'} ||= '32.32'; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>INDEMNITY employee</strong> - Typically $3.50.<br />'."\n"; | |
$display .=qq^ <label for="premium_1indemnity" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">employee:</label>^."\n"; | |
$display .=' <input type="text" name="premium_1indemnity" id="premium_1indemnity" class="form_box" size="10" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'app'}{'premium_1indemnity'}).'" />'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
# premium_2indemnity | |
$field_count ++; | |
$spirit->{'products'}{$product_id}{'app'}{'premium_2indemnity'} ||= '62.18'; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>INDEMNITY plus 1</strong> - Typically $4.36.<br />'."\n"; | |
$display .=qq^ <label for="premium_2indemnity" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">plus 1:</label>^."\n"; | |
$display .=' <input type="text" name="premium_2indemnity" id="premium_2indemnity" class="form_box" size="10" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'app'}{'premium_2indemnity'}).'" />'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
# premium_3indemnity | |
$field_count ++; | |
$spirit->{'products'}{$product_id}{'app'}{'premium_3indemnity'} ||= '98.16'; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>INDEMNITY family</strong> - Typically $6.58.<br />'."\n"; | |
$display .=qq^ <label for="premium_3indemnity" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">family:</label>^."\n"; | |
$display .=' <input type="text" name="premium_3indemnity" id="premium_3indemnity" class="form_box" size="10" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'app'}{'premium_3indemnity'}).'" />'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
# plan_code_indemnity | |
$field_count ++; | |
$spirit->{'products'}{$product_id}{'app'}{'plan_code_indemnity'} ||= 'CXBA06'; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>plan code</strong> - default CXBA06.<br />'."\n"; | |
$display .=qq^ <label for="plan_code_indemnity" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">plan code:</label>^."\n"; | |
$display .=' <input type="text" name="plan_code_indemnity" id="plan_code_indemnity" class="form_box" size="10" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'app'}{'plan_code_indemnity'}).'" />'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
# group_code_indemnity | |
$field_count ++; | |
$spirit->{'products'}{$product_id}{'app'}{'group_code_indemnity'} ||= 'CD6071'; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>group code</strong> - default CD6071.<br />'."\n"; | |
$display .=qq^ <label for="group_code_indemnity" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">group code:</label>^."\n"; | |
$display .=' <input type="text" name="group_code_indemnity" id="group_code_indemnity" class="form_box" size="10" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'app'}{'group_code_indemnity'}).'" />'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
$display .=' <h3>admin notes</h3>'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
# note | |
$field_count ++; | |
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>note</strong> - Set an internal note.<br />'."\n"; | |
$display .=qq^ <label for="note" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">note:</label>^."\n"; | |
$display .=' <textarea name="note" id="note" rows="5" cols="60">'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'admin'}{'note'}).'</textarea>'."\n"; | |
$display .=' <div class="spacer"></div>'."\n"; | |
$display .=' <div class="button_bar">'."\n"; | |
$display .=' <a href="'."javascript:update_form('".$control."_application','cancel');".'" class="button">cancel</a>'."\n"; | |
$display .=' <a href="'."javascript:update_form('".$control."_application','update');".'" class="button primary">update</a>'."\n"; | |
$display .=' </div>'."\n"; | |
} | |
else { | |
$display .=' <div style="margin:50px;">'."\n"; | |
$display .=' Ouch! We had a problem loading the product. :('."\n"; | |
$display .=' </div>'."\n"; | |
} | |
$display .=' </form>'."\n"; | |
$display .='</div>'."\n"; | |
$spirit->{'value'}{'control'}{'app_'.$product_id}{'application'} = $display; | |
$spirit->{'debug'} .= '</div></<strong>display_application</strong>><br />'."\n"; | |
return 1; | |
} | |
# | |
#-------------------------------------------------------------------------------------------------- | |
# | |
# usage: &display_restrictions($spirit, $dbh, $r, $software, $control, $key_product, $product_id, $args) | |
# arguments: $spirit, $dbh | |
# returns: html | |
# function: create html for control | |
# | |
sub display_restrictions | |
{ | |
my($spirit, $dbh, $r, $software, $control, $key_product, $product_id, $args) = @_; | |
$spirit->{'debug'} .= '<<strong>display_restrictions</strong>> - called by:'.join(',', caller).'<div style="padding-left:25px;">'."\n"; | |
$spirit->{'debug'} .= 'control: '.$control.'<br />'."\n"; | |
if ($args) | |
{ | |
$spirit->{'debug'} .= 'args:<div style="padding-left:25px;">'."\n"; | |
foreach my $arg (keys %{$args}) | |
{ | |
$spirit->{'debug'} .= $arg.': '.$args->{$arg}.'<br />'."\n"; | |
} | |
$spirit->{'debug'} .= '</div>'."\n"; | |
} | |
my $field_count = 0; | |
my $sql; | |
my $sth; | |
my $display; | |
$display .='<div id="control_'.$control.'_application" class="control">'."\n"; | |
$display .=' <form method="post" action="'.$spirit->{'internal'}{'url_app'}.'" id="'.$control.'_restrictions" name="'.$control.'_restrictions">'."\n"; | |
$display .=' <input type="hidden" name="session_id" value="'.$spirit->{'session'}{'session_id'}.'" />'."\n"; | |
$display .=' <input type="hidden" name="screen" value="'.$spirit->{'screen'}.'" />'."\n"; | |
$display .=' <input type="hidden" name="control" value="'.$control.'" />'."\n"; | |
$display .=' <input type="hidden" name="action" value="" />'."\n"; | |
$display .=' <input type="hidden" name="misc1" value="restrictions" />'."\n"; | |
$display .=' <input type="hidden" name="key_product" value="'.$key_product.'" />'."\n"; | |
$display .=' <input type="hidden" name="product_id" value="'.$product_id.'" />'."\n"; | |
if ($key_product) { | |
$display .=qq^ <h3>application restrictions</h3>^."\n"; | |
$display .=' <div class="fact_box vm50">This application does not have any configurable restrictions.</div>'."\n"; | |
# title | |
# $field_count ++; | |
# $spirit->{'products'}{$product_id}{'sob'}{'title'} ||= ''; | |
# $spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>title</strong> - Product title to be shown on the statement of benefits.<br />'."\n"; | |
# $display .=qq^ <label for="title" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">title:</label>^."\n"; | |
# $display .=' <input type="text" name="title" id="title" class="form_box" size="40" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'sob'}{'title'}).'" />'."\n"; | |
# $display .=' <div class="hint indent">product title shown on the statement of benefits.</div>'."\n"; | |
# $display .=' <br style="clear:both;" />'."\n"; | |
$display .=' <div class="button_bar">'."\n"; | |
$display .=' <a href="'."javascript:update_form('".$control."_restrictions','cancel');".'" class="button">cancel</a>'."\n"; | |
# $display .=' <a href="'."javascript:update_form('".$control."_restrictions','update');".'" class="button primary">update</a>'."\n"; | |
$display .=' </div>'."\n"; | |
} | |
else { | |
$display .=' <div style="margin:50px;">'."\n"; | |
$display .=' Ouch! We had a problem loading the product. :('."\n"; | |
$display .=' </div>'."\n"; | |
} | |
$display .=' </form>'."\n"; | |
$display .='</div>'."\n"; | |
$spirit->{'value'}{'control'}{'app_'.$product_id}{'restrictions'} = $display; | |
$spirit->{'debug'} .= '</div></<strong>display_application</strong>><br />'."\n"; | |
return 1; | |
} | |
# | |
#-------------------------------------------------------------------------------------------------- |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment