'') {
TTransaction::open('pft');
//-------------------------------------------
$processo = new Processos($param['id']);
$tpdeclaracao = $processo->tpdeclaracao;
//-------------------------------------------
$cliente = new Clientes($processo->Clientes_id);
//-------------------------------------------
$repository = new TRepository('Adicoes');
$criteria = new TCriteria;
$criteria->add(new TFilter("Processos_id","=",'9'), TExpression::AND_OPERATOR);
if (empty($param['order'])) {
$param['order'] = 'id';
$param['direction'] = 'asc';
$param['group'] = 'nradicao,cdncm,plienviogrupo';
}
$criteria->setProperties($param);
$obj = $repository->load($criteria, FALSE);
$array = ['cdncm','inscsuframa','cnpj','telefone'];
$reg = '';
foreach($obj as $adicoes){
//var_dump($adicoes->cdncm);
//print "";
//tratando o nome do arquivo ------------------
$dt = new DateTime();
//$data = $dt->format('dMY\_His');
$data = $dt->format('dMY');
$arq = "tmp/pli/{$cliente->inscsuframa}_own_{$data}.PL5";
$reg = '';
//abri o arquivo para gravacao------------------
$fp = fopen( $arq, "w+");
//----------------------------------------------
$repository_reg1 = new TRepository('Txtpli');
$criteria_reg1 = new TCriteria;
$criteria_reg1->add(new TFilter("reg","=",'1'), TExpression::AND_OPERATOR);
if (empty($param['order'])) {
$param['order'] = 'id';
$param['direction'] = 'asc';
}
$criteria_reg1->setProperties($param);
$reg_reg1 = $repository_reg1->load($criteria_reg1, FALSE);
$reg = '';
if($reg_reg1){
foreach ($reg_reg1 as $reg1) {
$tamanho = (int) $reg1->tamanho;
$tipo = $reg1->tipo;//texto, numerico
$tabela = $reg1->tabela;//
$relacao = $reg1->relacao;
$campo = $reg1->campo;
$casas = $reg1->casas;
$array = ['cnpj'=>'cnpj','inscsuframa'=>'inscsufram', 'telefone'=>'telefone','cep'=>'cep'];
}//fim do foreach do registro 1
//gravando no arquivo --------------------------
fwrite($fp, utf8_encode($reg."\n") );
$msn = '';
if( strlen($reg) > 343 ){
$msn .= "Registro 1 - Estrutura maior que o Layout
";
}
if( strlen($reg) < 343 ){
$msn .= "Registro 1 - Estrutura menor que o Layout
";
}
}//fim do if do registro 1
//tipo de registro 1 ---------------------------
//informacoes basicas
//-------------------------------------------
//informacoes da adicao
$conn = TTransaction::get();
$sql = ("SELECT Adicoes.*, Faturas.*, FaturaItens.*,
sum(FaturaItens.plitem) as pladicao, sum(FaturaItens.quantidade) as qtdadicao,
sum(vliiitem)as vliiadicao, sum(vlipiitem)as vlipiadicao,sum(vlpisitem)as vlpisadicao
FROM ((Faturas INNER JOIN FaturaItens ON FaturaItens.Faturas_id=Faturas.id)
inner join Adicoes on Adicoes.Processos_id=Faturas.Processos_id)
WHERE Faturas.Processos_id = {$processo->id}
GROUP BY FaturaItens.cdncm, FaturaItens.nradicao,FaturaItens.Fabricantes_id
ORDER BY FaturaItens.cdncm, FaturaItens.nradicao, FaturaItens.nritem");
//print "{$sql}
";
$obj_adicao = $conn->query($sql);
//------------------------------------------------------------------
$repository_reg1 = '';
$repository_reg1 = new TRepository('Txtpli');
$criteria_reg1 = '';
$criteria_reg1 = new TCriteria;
$criteria_reg1->add(new TFilter("reg","=",'9'), TExpression::AND_OPERATOR);
if (empty($param['order'])) {
$param['order'] = 'id';
$param['direction'] = 'asc';
}
$criteria_reg1->setProperties($param);
$reg_reg1 = $repository_reg1->load($criteria_reg1, FALSE);
$arrayfreteseguro = ["DAT"=>"DAT","CIP"=>"CIP","CIF"=>"CIF","DAP"=>"DAP","DPU"=>"DPU"];
$arrayfrete = ["CPT"=>"CPT","CFR"=>"CFR"];
if($obj_adicao){
foreach($obj_adicao as $adicao){
//informacoes do fornecedor
$exportador = new Fabricanteexportador($adicao['Exportadores_id']);
//informacoes do fabricante
$fabricante = new Fabricanteexportador($adicao['Fabricantes_id']);
$vl_li = $adicao['vlfob'];
if( array_key_exists($adicao['icoterms'], $arrayfreteseguro) ){
$vl_li = ($adicao['vlfob']+$adicao['vlfrete']+$adicao['vlseguro']);
}
if( array_key_exists($adicao['icoterms'], $arrayfrete) ){
$vl_li = ($adicao['vlfob']+$adicao['vlfrete']);
}
$adicao['vl_li'] = $vl_li;
$reg = '';
if($reg_reg1){
foreach ($reg_reg1 as $reg1) {
$tamanho = (int) $reg1->tamanho;
$tipo = $reg1->tipo;//texto, numerico
$tabela = $reg1->tabela;//
$relacao = $reg1->relacao;
$campo = $reg1->campo;
$casas = $reg1->casas;
$array = ['cnpj'=>'cnpj','inscsuframa'=>'inscsufram', 'telefone'=>'telefone','cep'=>'cep'];
}
fwrite($fp, utf8_encode($reg."\n") );
//print "Tamanho Reg9: ". strlen($reg) ."
";
$msn = '';
if( strlen($reg) > 135 ){
$msn .= "Registro 9 - Estrutura maior que o Layout
";
}
if( strlen($reg) < 135 ){
$msn .= "Registro 9 - Estrutura menor que o Layout
";
}
//tipo de registro 9 ---------------------------
//informacoes Mercadoria (Adicao)
}//fim do if do registro 9
//informacao do exportador e fabricante
$repository_reg1 = new TRepository('Txtpli');
$criteria_reg1 = new TCriteria;
$criteria_reg1->add(new TFilter("reg","=",'8'), TExpression::AND_OPERATOR);
if (empty($param['order'])) {
$param['order'] = 'id';
$param['direction'] = 'asc';
}
$criteria_reg1->setProperties($param);
$reg_reg1 = $repository_reg1->load($criteria_reg1, FALSE);
$reg = '';
if($reg_reg1){
foreach ($reg_reg1 as $reg1) {
$tamanho = (int) $reg1->tamanho;
$tipo = $reg1->tipo;//texto, numerico
$tabela = $reg1->tabela;//
$relacao = $reg1->relacao;
$campo = $reg1->campo;
$casas = $reg1->casas;
$array = ['cnpj'=>'cnpj','inscsuframa'=>'inscsufram', 'telefone'=>'telefone','cep'=>'cep'];
}//fim do foreach do registro 8
//gravando no arquivo --------------------------
fwrite($fp, utf8_encode($reg."\n") );
$msn = '';
if( strlen($reg) > 401 ){
$msn .= "Registro 8 - Estrutura maior que o Layout
";
}
if( strlen($reg) < 401 ){
$msn .= "Registro 8 - Estrutura menor que o Layout
";
}
}//fim do if do registro 8
//-------------------------------------------
//informacao do exportador e fabricante
$repository_reg1 = new TRepository('Txtpli');
$criteria_reg1 = new TCriteria;
$criteria_reg1->add(new TFilter("reg","=",'10'), TExpression::AND_OPERATOR);
if (empty($param['order'])) {
$param['order'] = 'id';
$param['direction'] = 'asc';
}
$criteria_reg1->setProperties($param);
$reg_reg1 = $repository_reg1->load($criteria_reg1, FALSE);
$reg = '';
if($reg_reg1){
foreach ($reg_reg1 as $reg1) {
$tamanho = (int) $reg1->tamanho;
$tipo = $reg1->tipo;//texto, numerico
$tabela = $reg1->tabela;//
$relacao = $reg1->relacao;
$campo = $reg1->campo;
$casas = $reg1->casas;
$array = ['cnpj'=>'cnpj','inscsuframa'=>'inscsufram', 'telefone'=>'telefone','cep'=>'cep'
];
}//fim do foreach do registro 10
//gravando no arquivo --------------------------
fwrite($fp, utf8_encode($reg."\n") );
$msn = '';
if( strlen($reg) > 75 ){
$msn .= "Registro 10 - Estrutura maior que o Layout
";
}
if( strlen($reg) < 75 ){
$msn .= "Registro 10 - Estrutura menor que o Layout
";
}
}//fim do if do registro 10
//-------------------------------------------
//informacoes da adicao
$conn = TTransaction::get();
$sql = ("SELECT Adicoes.*, Faturas.*, FaturaItens.*
FROM ((Faturas INNER JOIN FaturaItens ON FaturaItens.Faturas_id=Faturas.id)
inner join Adicoes on Adicoes.Processos_id=Faturas.Processos_id and Adicoes.nradicao=FaturaItens.nradicao
and Adicoes.nritem=FaturaItens.nritem)
WHERE Faturas.Processos_id = {$processo->id}
ORDER BY FaturaItens.cdncm, FaturaItens.nradicao, FaturaItens.nritem");
//print "{$sql}
";
$obj_item = $conn->query($sql);
//------------------------------------------------------------------
$repository_reg1 = '';
$repository_reg1 = new TRepository('Txtpli');
$criteria_reg1 = '';
$criteria_reg1 = new TCriteria;
$criteria_reg1->add(new TFilter("reg","=",'3'), TExpression::AND_OPERATOR);
if (empty($param['order'])) {
$param['order'] = 'id';
$param['direction'] = 'asc';
}
$criteria_reg1->setProperties($param);
$reg_reg1 = $repository_reg1->load($criteria_reg1, FALSE);
$arrayfreteseguro = ["DAT"=>"DAT","CIP"=>"CIP","CIF"=>"CIF","DAP"=>"DAP","DPU"=>"DPU"];
$arrayfrete = ["CPT"=>"CPT","CFR"=>"CFR"];
if($obj_item){
foreach($obj_item as $item){
$tpaplicacao = $item['tpaplicmerc'];
$vl_li = $item['vlfob'];
if( array_key_exists($item['icoterms'], $arrayfreteseguro) ){
$vl_li = ($item['vlfob']+$item['vlfrete']+$item['vlseguro']);
}
if( array_key_exists($item['icoterms'], $arrayfrete) ){
$vl_li = ($item['vlfob']+$item['vlfrete']);
}
$item['vl_li'] = $vl_li;
$reg = '';
if($reg_reg1){
foreach ($reg_reg1 as $reg1) {
$tamanho = (int) $reg1->tamanho;
$tipo = $reg1->tipo;//texto, numerico
$tabela = $reg1->tabela;//nome da tabela
$relacao = $reg1->relacao;//nome do campo da tabela
$campo = $reg1->campo;//nome da estrutura do layout
$casas = $reg1->casas;//quantidade de casas decimais
if( $tpaplicacao == '1' ){
if($campo == 'TX_DESC_COMPLEM'){
//print "Teste
";
$descricao = substr(str_pad(${$tabela}['descricao'], 3723, ' ' , STR_PAD_RIGHT ), 0, 3723 );
$reffab = substr(str_pad(${$tabela}['reffab'], 20, ' ' , STR_PAD_RIGHT ), 0, 20 );
$matprim = substr(str_pad(${$tabela}['matprim'], 20, ' ' , STR_PAD_RIGHT ), 0, 20 );
$partnumber = substr(str_pad(${$tabela}['partnumber'], 20, ' ' , STR_PAD_RIGHT ), 0, 20 );
$item['descricao'] = $descricao.$reffab.$partnumber.$matprim;
}
}
}//fim do foreach do registro 3
fwrite($fp, utf8_encode($reg."\n") );
//print "Tamanho Reg3: ". strlen($reg) ."
";
$msn = '';
if( strlen($reg) > 4193 ){
$msn .= "Registro 3 - Estrutura maior que o Layout
";
}
if( strlen($reg) < 4193 ){
$msn .= "Registro 3 - Estrutura menor que o Layout
";
}
//tipo de registro 3 ---------------------------
//informacoes Mercadoria
}//fim do if do registro 3
}//fim do foreach do obj mercadoria
}//fim do obj mercadoria
}//foreach fim da adicoes
//gravando no arquivo --------------------------
//fecha o arquivo ------------------------------
fclose($fp);
//fazendo o donload do aquivo ------------------
//TPage::openFile($arq);
TTransaction::close();
}//fim do if do ID
} catch (Exception $e) {
new TMessage('error', $e->getMessage());
}
}
}//fim da class