Created
September 13, 2019 02:20
-
-
Save FredAzevedo/702663d7a7b1d89893a3d33efb3715d5 to your computer and use it in GitHub Desktop.
ClienteContratoForm.class.php
This file contains 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
<?php | |
/** | |
* ClienteContratoForm Form | |
* @author Fred Avz. | |
*/ | |
use Adianti\Widget\Base\TScript; | |
use Eduardokum\LaravelBoleto\Boleto\Banco\Bancoob; | |
use Eduardokum\LaravelBoleto\Boleto\Banco\Sicredi; | |
use Eduardokum\LaravelBoleto\Boleto\Render\Pdf; | |
use Eduardokum\LaravelBoleto\Contracts\Boleto\Boleto; | |
use Eduardokum\LaravelBoleto\Contracts\Boleto\Boleto as BoletoContract; | |
use Eduardokum\LaravelBoleto\Pessoa; | |
use Eduardokum\LaravelBoleto\Util; | |
class ClienteContratoForm extends TPage | |
{ | |
protected $form; // form | |
/** | |
* Form constructor | |
* @param $param Request | |
*/ | |
public function __construct( $param ) | |
{ | |
parent::__construct(); | |
// creates the form | |
$this->form = new BootstrapFormBuilder('form_ClienteContrato'); | |
$this->form->setFormTitle('Gestão de Contratos'); | |
$this->form->setFieldSizes('100%'); | |
// create the form fields | |
$id = new TEntry('id'); | |
$id_unit_session = new TCriteria(); | |
$id_unit_session->add(new TFilter('id','=',TSession::getValue('userunitid'))); | |
$unit_id = new TDBCombo('unit_id','sample','SystemUnit','id','unidade','unidade',$id_unit_session); | |
$unit_id->setValue(TSession::getValue('userunitid')); | |
$unit_id->setEditable(FALSE); | |
if (!empty($_GET['id'])) | |
{ | |
$user_id = new TDBCombo('user_id','sample','SystemUser','id','name','name',$id_unit_session); | |
//$user_id->setEditable(FALSE); | |
}else{ | |
$user_id = new TDBCombo('user_id','sample','SystemUser','id','name','name',$id_unit_session); | |
$user_id->setValue(TSession::getValue('userunitid')); | |
$user_id->setEditable(FALSE); | |
} | |
$nome = new TEntry('nome'); | |
$nome->addValidation('Nome do Contrato', new TRequiredValidator); | |
$cliente_id = new TDBUniqueSearch('cliente_id', 'sample', 'Cliente', 'id', 'nome_fantasia'); | |
$cliente_id->addValidation('Cliente', new TRequiredValidator); | |
$tipo_endereco_id = new TDBCombo('tipo_endereco_id', 'sample', 'TipoEndereco', 'id', 'nome'); | |
$tipo_endereco_id->addValidation('Tipo de Endereço', new TRequiredValidator); | |
$relatorio_customizado_id = new TDBCombo('relatorio_customizado_id', 'sample', 'RelatorioCustomizado', 'id', 'nome'); | |
$relatorio_customizado_id->addValidation('Modelo de Contrato', new TRequiredValidator); | |
$inicio_vigencia = new TDate('inicio_vigencia'); | |
$inicio_vigencia->setDatabaseMask('yyyy-mm-dd'); | |
$inicio_vigencia->setMask('dd/mm/yyyy'); | |
$inicio_vigencia->addValidation('Início de Vigência', new TRequiredValidator); | |
$fim_vigencia = new TDate('fim_vigencia'); | |
$fim_vigencia->setDatabaseMask('yyyy-mm-dd'); | |
$fim_vigencia->setMask('dd/mm/yyyy'); | |
$fim_vigencia->addValidation('Fim de Vigência', new TRequiredValidator); | |
$tipo_forma_pgto_id = new TDBCombo('tipo_forma_pgto_id','sample','TipoFormaPgto','id','nome'); | |
$tipo_forma_pgto_id->setChangeAction(new TAction(array($this, 'onChangeFormaPGTO'))); | |
$tipo_forma_pgto_id->addValidation('Forma de Pagamento', new TRequiredValidator); | |
$id_unit_session_conta_bancaria = new TCriteria(); | |
$id_unit_session_conta_bancaria->add(new TFilter('unit_id','=',TSession::getValue('userunitid'))); | |
$conta_bancaria_id = new TDBCombo('conta_bancaria_id', 'sample', 'ContaBancaria', 'id', '{banco->nome_banco} - AG: {agencia} - CC: {conta}','',$id_unit_session_conta_bancaria); | |
$conta_bancaria_id->addValidation('Conta Bancária', new TRequiredValidator); | |
$conta_bancaria_entrada_id = new TDBCombo('conta_bancaria_entrada_id', 'sample', 'ContaBancaria', 'id', '{banco->nome_banco} - AG: {agencia} - CC: {conta}','',$id_unit_session_conta_bancaria); | |
$conta_bancaria_entrada_id->addValidation('Conta Bancária', new TRequiredValidator); | |
$tipo_pgto_id = new TDBCombo('tipo_pgto_id','sample','TipoPgto','id','nome','nome'); | |
$tipo_pgto_id->addValidation('Tipo de Pagamento', new TRequiredValidator); | |
$plano_id = new TDBCombo('plano_id', 'sample', 'Plano', 'id', 'nome'); | |
$plano_id->setChangeAction(new TAction(array($this, 'onChangePlano'))); | |
$plano_id->addValidation('Plano Escolhido', new TRequiredValidator); | |
$valor = new TNumeric('valor', 2,',','.',true); | |
//$valor->setEditable(FALSE); | |
$entrada = new TNumeric('entrada', 2,',','.',true); | |
$entrada->setValue('0.00'); | |
$entrada->addValidation('Valor de Entrada', new TRequiredValidator); | |
$desconto = new TNumeric('desconto', 2,',','.',true); | |
$desconto->setValue('0.00'); | |
$desconto->addValidation('Valor de Desconto', new TRequiredValidator); | |
$total = new TNumeric('total', 2,',','.',true); | |
$total->setEditable(FALSE); | |
$parcela = new TCombo('parcela'); | |
$combo_parcela['S'] = 'Sim'; | |
$combo_parcela['N'] = 'Não'; | |
$parcela->addItems($combo_parcela); | |
$parcela->addValidation('Há Parcelas?', new TRequiredValidator); | |
$qtd_parcelas = new TEntry('qtd_parcelas'); | |
$qtd_parcelas->setEditable(FALSE); | |
$qtd_parcelas->setValue('0'); | |
$valor_parcelado = new TNumeric('valor_parcelado', 2,',','.',true); | |
$valor_parcelado->setEditable(FALSE); | |
$vencimento_primeira_parcela = new TDate('vencimento_primeira_parcela'); | |
$vencimento_primeira_parcela->setDatabaseMask('yyyy-mm-dd'); | |
$vencimento_primeira_parcela->setMask('dd/mm/yyyy'); | |
// add the fields | |
$row = $this->form->addFields( [ new TLabel('ID'), $id ], | |
[ new TLabel('Cliente / Razão Social'), $cliente_id ], | |
[ new TLabel('Tipo de Endereço'), $tipo_endereco_id ]); | |
$row->layout = ['col-sm-2', 'col-sm-6', 'col-sm-4']; | |
$row = $this->form->addFields( [ new TLabel('Modelo de Contrato'), $relatorio_customizado_id ], | |
[ new TLabel('Usuário'), $user_id ], | |
[ new TLabel('Unidade'), $unit_id ]); | |
$row->layout = ['col-sm-4', 'col-sm-4','col-sm-4']; | |
$this->form->addContent( ['<h4><b>Dados do PIT</b></h4><hr>'] ); | |
$data_evento = new TDate('data_evento'); | |
$data_evento->setDatabaseMask('yyyy-mm-dd'); | |
$data_evento->setMask('dd/mm/yyyy'); | |
$horario = new TTime('horario'); | |
$local1 = new TEntry('local1'); | |
$local2 = new TEntry('local2'); | |
$observacoes = new TText('observacoes'); | |
$social = new TEntry('social'); | |
$pit_servico_id = new TDBCombo('pit_servico_id','sample','PitServico','id','servico','servico'); | |
$socialService = new TDBCheckGroup('socialService','sample','PitSocial','id','social'); | |
$socialService->setLayout('horizontal'); | |
if ($socialService->getLabels()) | |
{ | |
foreach ($socialService->getLabels() as $label) | |
{ | |
$label->setSize(200); | |
} | |
} | |
$row = $this->form->addFields( [ new TLabel('Data do Evento'), $data_evento ], | |
[ new TLabel('Horário'), $horario ], | |
[ new TLabel('Local 1'), $local1 ], | |
[ new TLabel('Local 2'), $local2 ]); | |
$row->layout = ['col-sm-2','col-sm-2', 'col-sm-4', 'col-sm-4']; | |
$row = $this->form->addFields( [ new TLabel('Redes Sociais'), $social ]); | |
$row->layout = ['col-sm-12']; | |
$row = $this->form->addFields( [ new TLabel('Social'), $socialService ], | |
[ new TLabel('Serviços'), $pit_servico_id] | |
); | |
$row->layout = ['col-sm-6', 'col-sm-6']; | |
$row = $this->form->addFields( [ new TLabel('Observações'), $observacoes ] | |
); | |
$row->layout = ['col-sm-12']; | |
$this->form->addContent( ['<h4><b>Valores</b></h4><hr>'] ); | |
/*$row = $this->form->addFields( [ new TLabel('Plano escolhido'), $plano_id ]); | |
$row->layout = ['col-sm-12'];*/ | |
$row = $this->form->addFields( [ new TLabel('Forma de Pagamento'), $tipo_forma_pgto_id ], | |
[ new TLabel('Tipo de Pagamento'), $tipo_pgto_id ], | |
[ new TLabel('Valor do Plano'), $valor ], | |
[ new TLabel('Valor de entrada'), $entrada ]); | |
$row->layout = ['col-sm-4','col-sm-4', 'col-sm-2', 'col-sm-2']; | |
$row = $this->form->addFields( [ new TLabel('Desconto'), $desconto ], | |
[ new TLabel('Total Geral'), $total ], | |
[ new TLabel('Há Parcelas?'), $parcela ], | |
[ new TLabel('Qtd. Parcelas'), $qtd_parcelas ], | |
[ new TLabel('Valor Parcela'), $valor_parcelado ], | |
[ new TLabel('Venc. 1º Parcela'), $vencimento_primeira_parcela]); | |
$row->layout = ['col-sm-2', 'col-sm-2', 'col-sm-2','col-sm-2','col-sm-2','col-sm-2']; | |
$row = $this->form->addFields( [ new TLabel('Conta vinculada a Parcelas'), $conta_bancaria_id ], | |
[ new TLabel('Conta vinculada a Entrada'), $conta_bancaria_entrada_id ]); | |
$row->layout = ['col-sm-6', 'col-sm-6']; | |
if (!empty($id)) | |
{ | |
$id->setEditable(FALSE); | |
} | |
/** samples | |
$fieldX->addValidation( 'Field X', new TRequiredValidator ); // add validation | |
$fieldX->setSize( '100%' ); // set size | |
**/ | |
// create the form actions | |
$btn = $this->form->addAction(_t('Save'), new TAction([$this, 'onSave']), 'fa:floppy-o'); | |
$btn->class = 'btn btn-sm btn-primary'; | |
$this->form->addAction(_t('New'), new TAction([$this, 'onEdit']), 'fa:eraser red'); | |
$this->form->addAction('Voltar', new TAction(['ClienteContratoList','onReload']), 'fa:arrow-circle-left red'); | |
/*$btn_boleto = $this->form->addAction('Gerar Boleto', new TAction([$this, 'onGerarBoleto']), 'fa:barcode'); | |
$btn_boleto->class = 'btn btn-sm btn-info';*/ | |
// vertical box container | |
$container = new TVBox; | |
$container->style = 'width: 100%'; | |
$container->add(new TXMLBreadCrumb('menu.xml','ClienteContratoList')); | |
$container->add($this->form); | |
parent::add($container); | |
$valor->onBlur = 'calculando()'; | |
$entrada->onBlur = 'calculando()'; | |
$desconto->onBlur = 'calculando()'; | |
TScript::create('calculando = | |
function() { | |
let valorPlano = convertToFloatNumber(form_ClienteContrato.valor.value); | |
valorEntrada = convertToFloatNumber(form_ClienteContrato.entrada.value); | |
valorDesconto = convertToFloatNumber(form_ClienteContrato.desconto.value); | |
let valorTotal = parseFloat(valorPlano) - parseFloat(valorEntrada) - parseFloat(valorDesconto); | |
let valorTot = formatMoney(valorTotal); | |
form_ClienteContrato.total.value = valorTot; | |
calculandoParcelas(); | |
}; | |
function formatMoney (number, decimal, separatord, separatort) { | |
var n = number, | |
c = isNaN(decimal = Math.abs(decimal)) ? 2 : decimal, | |
d = separatord == undefined ? "," : separatord, | |
t = separatort == undefined ? "." : separatort, | |
s = n < 0 ? "-" : "", | |
i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", | |
j = (j = i.length) > 3 ? j % 3 : 0; | |
return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : ""); | |
}; | |
function convertToFloatNumber(value) { | |
value = value.toString(); | |
if (value.indexOf(\'.\') !== -1 || value.indexOf(\',\') !== -1) { | |
if (value.indexOf(\'.\') > value.indexOf(\',\')) { | |
return parseFloat(value.replace(/,/gi,\'\')); | |
} else { | |
return parseFloat(value.replace(/\./gi,\'\').replace(/,/gi,\'.\')); | |
} | |
} else { | |
return parseFloat(value); | |
} | |
}; | |
'); | |
$tipo_forma_pgto_id->onBlur = 'calculandoParcelas()'; | |
$qtd_parcelas->onChange = 'calculandoParcelas()'; | |
// $plano_id->onChange = 'console.log("oi")'; | |
/** @lang JavaScript 1.8 */ | |
TScript::create( | |
'calculandoParcelas = | |
function() { | |
let total = convertToFloatNumber(form_ClienteContrato.total.value); | |
let qtd_parcelas = convertToFloatNumber(form_ClienteContrato.qtd_parcelas.value); | |
if (qtd_parcelas == 0) { | |
qtd_parcelas = 1; | |
} | |
let valorTotal = total / qtd_parcelas; | |
let valorTot = formatMoney(valorTotal); | |
form_ClienteContrato.valor_parcelado.value = valorTot; | |
}; | |
function formatMoney (number, decimal, separatord, separatort) { | |
var n = number, | |
c = isNaN(decimal = Math.abs(decimal)) ? 2 : decimal, | |
d = separatord == undefined ? "," : separatord, | |
t = separatort == undefined ? "." : separatort, | |
s = n < 0 ? "-" : "", | |
i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", | |
j = (j = i.length) > 3 ? j % 3 : 0; | |
return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : ""); | |
}; | |
'); | |
} | |
public function onGerarBoleto($param) { | |
$data = $this->form->getData(); | |
if (!$data->id) { | |
new TMessage('error', 'Salve antes de gerar o boleto!'); | |
$this->form->setData($data); | |
return; | |
} | |
try { | |
TTransaction::open('sample'); | |
$cliente = new Cliente($data->cliente_id); | |
$conta = new ContaBancaria($data->conta_bancaria_id); | |
$endereco = ClienteEndereco::where('cliente_id', '=', $cliente->id)->first(); | |
$banco = $conta->banco; | |
$image_name = $banco->num_banco . '.png'; | |
$image_path = realpath(PATH . '/vendor/eduardokum/laravel-boleto/logos/') . DIRECTORY_SEPARATOR . $image_name; | |
$numero = $conta->ultimo_nossonumero + 1; //nosso numero = 1; | |
$numeroDocumento = $data->id; | |
$carteira = $conta->carteira; | |
$agencia = $conta->codigo_cooperativa;//$conta->agencia . $conta->agencia_dv; | |
$convenio = $conta->convenio; | |
$conta_numero = $conta->conta . $conta->conta_dv; | |
$aceite = $conta->aceite; | |
$especieDoc = $conta->especieDoc; | |
$codigo_cooperativa = $conta->codigo_cooperativa;//$conta->agencia . $conta->agencia_dv; | |
$codigo_beneficiario = $conta->beneficiario;//$conta->agencia . $conta->agencia_dv; | |
$variacaoCarteira = $conta->variacaoCarteira; | |
$cip = $conta->cip; | |
$byte = $conta->byte; | |
$posto = $conta->posto; | |
$contaDv = $conta->contaDv; | |
$campo_range = $conta->campo_range; | |
$codigoCliente = $conta->codigoCliente; | |
$vencimento = new \Carbon\Carbon($data->inicio_vigencia); | |
$valor = $data->entrada; | |
$instrucao = []; | |
for ($i = 1; $i <= 4; $i++) { | |
$inst = "instrucoes{$i}"; | |
if ($conta->$inst) { | |
array_push($instrucao, $conta->$inst); | |
} | |
} | |
$beneficiario = new Pessoa( | |
[ | |
'nome' => $conta->system_unit->razao_social, | |
'endereco' => $conta->system_unit->logradouro, | |
'bairro' => $conta->system_unit->bairro, //'Bairro', | |
'cep' => $conta->system_unit->cep, | |
'uf' => $conta->system_unit->uf, | |
'cidade' => $conta->system_unit->cidade, | |
'documento' => $conta->system_unit->cnpj | |
] | |
); | |
$pagador = new Pessoa( | |
[ | |
'nome' => $cliente->razao_social, | |
'endereco' => $endereco->logradouro, // 'Rua um, 123', | |
'bairro' => $endereco->bairro, //'Bairro', | |
'cep' => $endereco->cep, //'99999-999', | |
'uf' => $endereco->uf, //'UF', | |
'cidade' => $endereco->cidade, //'CIDADE', | |
'documento' => $cliente->cpf_cnpj | |
] | |
); | |
$dados_boleto = [ | |
'logo' => $image_path, | |
'dataVencimento' => $vencimento, | |
'valor' => $valor, | |
'multa' => false, | |
'juros' => false, | |
'numero' => $numero, | |
'numeroDocumento' => $numeroDocumento, | |
'pagador' => $pagador, | |
'beneficiario' => $beneficiario, | |
'carteira' => $carteira, | |
'agencia' => $agencia, | |
'convenio' => $convenio, | |
'conta' => $conta_numero, | |
'descricaoDemonstrativo' => [], //['demonstrativo 1', 'demonstrativo 2', 'demonstrativo 3'], | |
'instrucoes' => $instrucao, | |
'aceite' => $aceite, | |
'especieDoc' => $especieDoc | |
]; | |
if ($banco->num_banco == Boleto::COD_BANCO_BANCOOB) { | |
$boleto = new Bancoob($dados_boleto); | |
$boleto->setAgencia($codigo_cooperativa); | |
} else if ($banco->num_banco == BoletoContract::COD_BANCO_BANRISUL) { | |
$boleto = new Banrisul($dados_boleto); | |
} else if ($banco->num_banco == BoletoContract::COD_BANCO_BB) { | |
$boleto = new Bb($dados_boleto); | |
$boleto->setVariacaoCarteira($variacaoCarteira); | |
} else if ($banco->num_banco == BoletoContract::COD_BANCO_SICREDI) { | |
$boleto = new Sicredi($dados_boleto); | |
$boleto->setByte(Util::onlyNumbers($byte)); | |
$boleto->setPosto(Util::onlyNumbers($posto)); | |
$boleto->setConta(Util::onlyNumbers($codigo_beneficiario)); | |
} else if ($banco->num_banco == BoletoContract::COD_BANCO_BNB) { | |
$boleto = new Bnb($dados_boleto); | |
} else if ($banco->num_banco == BoletoContract::COD_BANCO_BRADESCO) { | |
$boleto = new Bradesco($dados_boleto); | |
$boleto->setCip(Util::onlyNumbers($cip)); | |
} else if ($banco->num_banco == BoletoContract::COD_BANCO_CEF) { | |
$boleto = new Caixa($dados_boleto); | |
$boleto->setCodigoCliente($codigoCliente); | |
} else if ($banco->num_banco == BoletoContract::COD_BANCO_HSBC) { | |
$boleto = new Hsbc($dados_boleto); | |
$boleto->setRange($campo_range); | |
$boleto->setContaDv($contaDv); | |
} else if ($banco->num_banco == BoletoContract::COD_BANCO_ITAU) { | |
$boleto = new Itau($dados_boleto); | |
} else if ($banco->num_banco == BoletoContract::COD_BANCO_SANTANDER) { | |
$boleto = new Santander($dados_boleto); | |
$boleto->setCodigoCliente(Util::onlyNumbers($codigoCliente)); | |
} else{ | |
throw new Exception('Banco não suportado para emitir boleto.'); | |
} | |
$pdf = new Pdf(); | |
$pdf->addBoleto($boleto); | |
$nome_boleto = 'boleto' . $data->id . '.pdf'; | |
$retorno = $pdf->gerarBoleto($pdf::OUTPUT_SAVE, PATH . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . $nome_boleto); | |
$this->form->setData($data); | |
$conta->ultimo_nossonumero = $numero; | |
$conta->store(); | |
$remessa = new Boletos(); | |
$remessa->dataVencimento = $boleto->getDataVencimento()->format('Y-m-d');//$data->data_vencimento; | |
$remessa->valor = $boleto->getValor();//$data->valor; | |
$remessa->multa = null; | |
$remessa->juros = null; | |
$remessa->numero = $boleto->getNumero(); | |
$remessa->numeroDocumento = $boleto->getNumeroDocumento(); | |
$remessa->carteira = $boleto->getCarteira(); | |
$remessa->conta_bancaria_id = $data->conta_bancaria_id; | |
$remessa->agencia = $boleto->getAgencia(); | |
$remessa->conta = $boleto->getConta(); | |
$remessa->instrucao1 = $conta->instrucoes1; | |
$remessa->instrucao2 = $conta->instrucoes2; | |
$remessa->instrucao3 = $conta->instrucoes3; | |
$remessa->instrucao4 = $conta->instrucoes4; | |
$remessa->cliente_id = $data->cliente_id; | |
$remessa->conta_receber_id = $data->id; | |
$remessa->unit_id = $data->unit_id; | |
$remessa->num_parcela = '1/1'; | |
$remessa->remessa = 'N'; | |
$remessa->cod_banco = $boleto->getCodigoBanco(); | |
$remessa->aceite = $boleto->getAceite(); | |
$remessa->especieDoc = $boleto->getEspecieDoc(); | |
$remessa->pag_nome = $cliente->razao_social; | |
$remessa->pag_endereco = $endereco->logradouro; // 'Rua um, 123', | |
$remessa->pag_bairro = $endereco->bairro; //'Bairro', | |
$remessa->pag_cep = $endereco->cep; //'99999-999', | |
$remessa->pag_uf = $endereco->uf; //'UF', | |
$remessa->pag_cidade = $endereco->cidade; //'CIDADE', | |
$remessa->pag_documento = $cliente->cpf_cnpj; | |
$remessa->ben_nome = $conta->system_unit->razao_social; | |
$remessa->ben_endereco = $conta->system_unit->logradouro; | |
$remessa->ben_bairro = $conta->system_unit->bairro; | |
$remessa->ben_cep = $conta->system_unit->cep; | |
$remessa->ben_uf = $conta->system_unit->uf; | |
$remessa->ben_cidade = $conta->system_unit->cidade; | |
$remessa->ben_documento = $conta->system_unit->cnpj; | |
if (method_exists($boleto, 'getCodigoCliente')) | |
$remessa->codigoCliente = $boleto->getCodigoCliente(); | |
if (method_exists($boleto, 'getVariacaoCarteira')) | |
$remessa->variacaocarteira = $boleto->getVariacaoCarteira(); | |
if (method_exists($boleto, 'getCip')) | |
$remessa->cip = $boleto->getCip(); | |
if (method_exists($boleto, 'getRange')) | |
$remessa->campo_range = $boleto->getRange(); | |
if (method_exists($boleto, 'getContaDv')) | |
$remessa->contaDv = $boleto->getContaDv(); | |
if (method_exists($boleto, 'getPosto')) | |
$remessa->posto = $boleto->getPosto(); | |
if (method_exists($boleto, 'getByte')) | |
$remessa->byte = $boleto->getByte(); | |
if (method_exists($boleto, 'getConvenio')) | |
$remessa->convenio = $boleto->getConvenio(); | |
$remessa->dataDesconto = $boleto->getDataDesconto()->format('Y-m-d'); | |
$remessa->dataDocumento = $boleto->getDataDocumento()->format('Y-m-d'); | |
$remessa->dataProcessamento = $boleto->getDataProcessamento()->format('Y-m-d'); | |
$remessa->desconto = $boleto->getDesconto(); | |
$remessa->jurosApos = $boleto->getJurosApos(); | |
$remessa->store(); | |
$ContasReceber = new ContaReceber(); | |
$ContasReceber->data_conta = $data->inicio_vigencia; | |
$ContasReceber->descricao = 'REFERENTE AO CONTRATO Nº '.$data->id; | |
$ContasReceber->documento = $data->id; //COLOCAR O NUMERO ÚNICO DO CARNE | |
$ContasReceber->data_vencimento = $data->inicio_vigencia; | |
$ContasReceber->valor = $data->entrada; | |
$ContasReceber->baixa = 'N'; | |
$ContasReceber->parcelas = 1; | |
$ContasReceber->nparcelas = 1; | |
$ContasReceber->replica = 'N'; | |
$ContasReceber->unit_id = $data->unit_id; | |
$ContasReceber->cliente_id = $data->cliente_id; | |
$ContasReceber->tipo_pgto_id = $data->tipo_pgto_id; | |
$ContasReceber->tipo_forma_pgto_id = $data->tipo_forma_pgto_id; | |
$ContasReceber->user_id = $data->user_id; | |
$plano = new Plano($data->plano_id); | |
$ContasReceber->pc_receita_id = $plano->pc_receita_id; | |
$ContasReceber->pc_receita_nome = $plano->pc_receita_nome; | |
$ContasReceber->conta_bancaria_id = $data->conta_bancaria_id; | |
$ContasReceber->store(); | |
parent::openFile("tmp/". $nome_boleto); | |
new TMessage('info', 'Boleto gerado com sucesso'); | |
TTransaction::close(); | |
} catch (Exception $e) { | |
TTransaction::rollback(); | |
new TMessage('error', 'Problema ao gerar o boleto. <br>' . $e->getMessage()); | |
$this->form->setData($data); | |
return; | |
} | |
} | |
public static function onChangePlano( $param ) | |
{ | |
$plano_id = $param['plano_id']; | |
if ($plano_id) | |
{ | |
$response = new stdClass; | |
try | |
{ | |
TTransaction::open('sample'); | |
$plano = Plano::where('id', '=', $plano_id)->load(); | |
if($plano){ | |
foreach ($plano as $prod) { | |
$response->{'valor'} = number_format($prod->valor,2,',', '.'); | |
$response->{'total'} = number_format($prod->valor,2,',', '.'); | |
$response->{'entrada'} = number_format('0.00',2,',', '.'); | |
$response->{'desconto'} = number_format('0.00',2,',', '.'); | |
TForm::sendData('form_ClienteContrato', $response); | |
} | |
} | |
TTransaction::close(); | |
TScript::create('calculandoParcelas()'); | |
} | |
catch (Exception $e) | |
{ | |
TTransaction::rollback(); | |
} | |
} | |
} | |
public static function onChangeFormaPGTO( $param ) | |
{ | |
$tipo_forma_pgto_id = $param['tipo_forma_pgto_id']; | |
if ($tipo_forma_pgto_id) | |
{ | |
$response = new stdClass; | |
try | |
{ | |
TTransaction::open('sample'); | |
$parcela = TipoFormaPgto::where('id', '=', $tipo_forma_pgto_id)->load(); | |
if($parcela){ | |
foreach ($parcela as $prod) { | |
$response->{'qtd_parcelas'} = $prod->parcela; | |
TForm::sendData('form_ClienteContrato', $response); | |
TScript::create('calculandoParcelas()'); | |
} | |
} | |
TTransaction::close(); | |
} | |
catch (Exception $e) | |
{ | |
TTransaction::rollback(); | |
} | |
} | |
} | |
public function onSave( $param ) | |
{ | |
try | |
{ | |
TTransaction::open('sample'); // open a transaction | |
/** | |
// Enable Debug logger for SQL operations inside the transaction | |
TTransaction::setLogger(new TLoggerSTD); // standard output | |
TTransaction::setLogger(new TLoggerTXT('log.txt')); // file | |
**/ | |
$this->form->validate(); // validate form data | |
$data = $this->form->getData(); // get form data as array | |
$cliente = new Cliente($data->cliente_id); | |
$data->nome = $cliente->razao_social; | |
$object = new ClienteContrato; // create an empty object | |
$object->fromArray( (array) $data); // load the object with data | |
$object->store(); // save the object | |
if( !empty($param['socialService']) ) | |
{ | |
foreach( $param['socialService'] as $pit_social_id ) | |
{ | |
$object->addPitSocial( new PitSocial($pit_social_id) ); | |
} | |
} | |
// get the generated id | |
$data->id = $object->id; | |
$this->form->setData($data); // fill form data | |
TTransaction::close(); // close the transaction | |
new TMessage('info', TAdiantiCoreTranslator::translate('Record saved')); | |
} | |
catch (Exception $e) // in case of exception | |
{ | |
new TMessage('error', $e->getMessage()); // shows the exception error message | |
$this->form->setData( $this->form->getData() ); // keep form data | |
TTransaction::rollback(); // undo all pending operations | |
} | |
} | |
/** | |
* Clear form data | |
* @param $param Request | |
*/ | |
public function onClear( $param ) | |
{ | |
$this->form->clear(TRUE); | |
} | |
/** | |
* Load object to form data | |
* @param $param Request | |
*/ | |
public function onEdit( $param ) | |
{ | |
try | |
{ | |
if (isset($param['key'])) | |
{ | |
$key = $param['key']; // get the parameter $key | |
TTransaction::open('sample'); // open a transaction | |
$object = new ClienteContrato($key); // instantiates the Active Record | |
$this->form->setData($object); // fill the form | |
$PitSocial = array(); | |
if( $PitSocial_db = $object->getPitPedidoPitSocial() ) | |
{ | |
foreach( $PitSocial_db as $serv ) | |
{ | |
$PitSocial[] = $serv->id; | |
} | |
} | |
$object->PitSocial = $PitSocial; | |
TTransaction::close(); // close the transaction | |
} | |
else | |
{ | |
$this->form->clear(TRUE); | |
} | |
} | |
catch (Exception $e) // in case of exception | |
{ | |
new TMessage('error', $e->getMessage()); // shows the exception error message | |
TTransaction::rollback(); // undo all pending operations | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment