<?php
namespace Globals\ClaimManagementBundle\Form;
use Doctrine\ORM\EntityRepository;
use Globals\ClaimManagementBundle\Entity\Claim;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\MoneyType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\CallbackTransformer;
class ClaimMainFragment extends AbstractType
{
private $status;
private $roles;
public function buildForm(FormBuilderInterface $builder, array $options)
{
// data passed into options array from controller
$this->status = $options['status'];
$this->roles = $options['roles'];
$canEdit = false;
foreach($this->roles as $role) {
if ($role == "ROLE_SUPER_ADMIN" || $role == "ROLE_ADMIN" || $role == "ROLE_EXAMINER") {
$canEdit = true;
}
}
if ($this->status < 30 && $canEdit) {
# dont disable
$bool = false;
} else {
# disable claimteam and customer
$bool = true;
}
$builder
->add('customerCatCode', TextType::class, ['label' => "CAT Bulletin", 'required' => false])
->add('catastropheCode', TextType::class, ['label' => "CAT Code"])
->add('dateClosed', DateType::class, ['widget'=>'single_text', 'label' => 'Date Closed', 'html5' => false, "format" => "MM/dd/yyyy", 'placeholder' =>'mm/dd/yyyy',
'attr' => ['class' => 'dateValidationJs form-control datepicker'],'disabled' => true])
->add('plannedInspectionDate', DateType::class, ['widget'=>'single_text', 'label' => 'Planned Inspection Date', 'html5' => false, "format" => "MM/dd/yyyy", 'placeholder' =>'mm/dd/yyyy',
'attr' => ['class' => 'dateValidationJs form-control datepicker'],'disabled' => true])
->add('dateInspected', DateType::class, ['widget'=>'single_text', 'label' => 'Date Inspected', 'html5' => false, "format" => "MM/dd/yyyy", 'placeholder' =>'mm/dd/yyyy',
'attr' => ['class' => 'dateValidationJs form-control datepicker'],'disabled' => true])
->add('dateReopened', DateType::class, ['widget'=>'single_text', 'label' => 'Date Re-Opened', 'html5' => false, "format" => "MM/dd/yyyy", 'placeholder' =>'mm/dd/yyyy',
'attr' => ['class' => 'file-info-dateValidationJs form-control file-info-datepicker'],'disabled' => true])
->add('customer', EntityType::class, ['class'=> 'Globals\CustomerManagementBundle\Entity\Customer','placeholder' => 'None', 'choice_label' => 'companyName', 'label' => 'Customer','disabled' => $bool])
->add('claimTeam', EntityType::class, ['class'=>'Globals\ClaimManagementBundle\Entity\ClaimTeam','placeholder' => 'None', 'choice_label' => 'name', 'label' => 'Claim Team', 'disabled' => $bool])
->add('severity', IntegerType::class, ['label'=>'Severity'])
->add('specialNotes', TextareaType::class, ['label'=>'Special Notes'])
->add('lossCity', TextType::class, ['label'=>'Loss City'])
->add('lossAmount', TextType::class, ['label' => 'Loss Amount'])
->add('lossState', EntityType::class, ['class'=>'Globals\ResourceManagementBundle\Entity\State', 'choice_label' => 'stateCode', 'label' => 'Loss State'])
->add('lossStreet', TextType::class, ['label'=>'Loss Address'])
->add('propertyStatus', EntityType::class, ['class' => 'Globals\ClaimManagementBundle\Entity\PropertyStatus', 'choice_label' => 'name', 'label' => 'Property Status'])
->add('claimExceptions', EntityType::class, ['class' => 'Globals\ClaimManagementBundle\Entity\ClaimExceptions', 'choice_label' => 'exception_code', 'placeholder' => '-- Select --', 'label' => 'Claim Exception'])
->add('lossZip')
->add('lossDate', DateType::class, [
'widget'=>'single_text',
'label' => 'Loss Date',
'html5' => false,
"format" => "MM/dd/yyyy",
'placeholder' =>'mm/dd/yyyy',
'attr' => [
'class' => 'file-info-dateValidationJs form-control file-info-datepicker'
]
])
->add('lossDescription', TextareaType::class, ['label'=>'Loss Description', 'attr' => array('height'=>'300px !important')])
->add("firstLossNotice",DateType::class, ['widget'=>'single_text', 'label' => 'First Loss Notice', 'html5' => false, "format" => "MM/dd/yyyy", 'placeholder' =>'mm/dd/yyyy',
'attr' => ['class' => 'file-info-dateValidationJs form-control file-info-datepicker']])
->add('policyNumber', TextType::class, ['label' => 'Policy #', 'required' => false])
->add('policy', EntityType::class, ['class'=>'Globals\ClaimManagementBundle\Entity\PolicyType', 'choice_label'=>'name', 'label' => 'Policy Type', 'placeholder' => 'Choose a Policy Type'])
->add('policyStartDate',DateType::class, ['widget'=>'single_text', 'label' => 'Policy Date (start)', 'html5' => false, "format" => "MM/dd/yyyy", 'placeholder' =>'mm/dd/yyyy',
'attr' => ['class' => 'file-info-dateValidationJs form-control file-info-datepicker']])
->add('policyEndDate', DateType::class, ['widget'=>'single_text', 'label' => 'Policy Date (end)', 'html5' => false, "format" => "MM/dd/yyyy", 'placeholder' =>'mm/dd/yyyy',
'attr' => ['class' => 'file-info-dateValidationJs form-control file-info-datepicker']])
->add('coinsurance', TextType::class, ['label' => 'Co-Insurance #'])
->add('planId', EntityType::class, ['class'=>'Globals\ClaimManagementBundle\Entity\PlanID', 'choice_label' => 'planName', 'label' => 'Plan ID', 'placeholder' => 'Choose a Plan ID'])
->add('formNumbers', TextareaType::class, ['label' => 'Form Numbers (set)'])
->add('settlement', EntityType::class, ['class'=>'Globals\ClaimManagementBundle\Entity\SettlementType', 'label' => 'Settlement Types', 'choice_label' => 'name', 'placeholder' => '- Choose Settlement Type -'])
->add('reopenSettlementType', EntityType::class, ['class'=>'Globals\ClaimManagementBundle\Entity\SettlementType', 'label' => 'Settlement Types', 'choice_label' => 'name', 'placeholder' => '- Choose Settlement Type -'])
->add("reportDueDate",DateType::class, ['widget'=>'single_text', 'label' => 'Report Due Date', 'html5' => false, "format" => "MM/dd/yyyy", 'placeholder' =>'mm/dd/yyyy',
'attr' => ['class' => 'file-info-dateValidationJs form-control file-info-datepicker']])
->add('loanNumber', TextType::class, ['label' => 'Loan Number'])
->add('mortgage', TextType::class, ['label' => 'Mortgage Information'])
->add('liabilityType', EntityType::class, ['class' => 'Globals\ClaimManagementBundle\Entity\LiabilityType','placeholder' => 'None', 'required' => false, 'choice_label' => 'name', 'label' => 'Liability Type'])
->add('recoveriesType', EntityType::class, ['class' => 'Globals\ClaimManagementBundle\Entity\RecoveriesType','placeholder' => 'None', 'required' => false,'choice_label' => 'name', 'label' => 'Recoveries Type']);
$builder->get('specialNotes')
->addModelTransformer(new CallbackTransformer(
function ($data) {
return strip_tags($data);
},
function ($data) {
return strip_tags($data);
}
));
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => Claim::class,
"csrf_protection" => false,
"roles" => "",
"status" => 0,
));
}
public function getName()
{
return 'claim_management_bundle_claim_main_fragment';
}
}