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/note_in.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':

        $where = ' a.id > 0 ';
        if (_post('filter') == 'Y') {
            $_SESSION['filter_note_search'] = _post('search');
            $_SESSION['filter_note_period_entry_ini'] = _postDate('p_entry_ini', $_c);
            $_SESSION['filter_note_period_entry_end'] = _postDate('p_entry_end', $_c);
            $_SESSION['filter_note_period_emi_ini'] = _postDate('p_emi_ini', $_c);
            $_SESSION['filter_note_period_emi_end'] = _postDate('p_emi_end', $_c);
        }

        if (isset($_SESSION['filter_note_search']) && !empty($_SESSION['filter_note_search'])) {
            $where.=" AND (account  like '%" . $_SESSION['filter_note_search'] . "%' or a.key like '%" . $_SESSION['filter_note_search'] . "%' or CAST(a.number as CHAR) like '%" . $_SESSION['filter_note_search'] . "%')";
            $filter['filter_note_search'] = $_SESSION['filter_note_search'];
        } else {
            $filter['filter_note_search'] = '';
        }

        if (isset($_SESSION['filter_note_period_entry_ini']) && !empty($_SESSION['filter_note_period_entry_ini'])) {
            $where .= " AND a.input_date >='" . date('Y-m-d', strtotime($_SESSION['filter_note_period_entry_ini'])) . "'";
            $filter['filter_note_period_entry_ini'] = $_SESSION['filter_note_period_entry_ini'];
        } else {
            $filter['filter_note_period_entry_ini'] = '';
        }
        if (isset($_SESSION['filter_note_period_entry_end']) && !empty($_SESSION['filter_note_period_entry_end'])) {
            $where .= " AND a.input_date <='" . date('Y-m-d', strtotime($_SESSION['filter_note_period_entry_end'])) . "'";
            $filter['filter_note_period_entry_end'] = $_SESSION['filter_note_period_entry_end'];
        } else {
            $filter['filter_note_period_entry_end'] = '';
        }

        if (isset($_SESSION['filter_note_period_emi_ini']) && !empty($_SESSION['filter_note_period_emi_ini'])) {
            $where .= " AND a.emission_date >='" . date('Y-m-d', strtotime($_SESSION['filter_note_period_emi_ini'])) . "'";
            $filter['filter_note_period_emi_ini'] = $_SESSION['filter_note_period_emi_ini'];
        } else {
            $filter['filter_note_period_emi_ini'] = '';
        }
        if (isset($_SESSION['filter_note_period_emi_end']) && !empty($_SESSION['filter_note_period_emi_end'])) {
            $where .= " AND a.emission_date <='" . date('Y-m-d', strtotime($_SESSION['filter_note_period_emi_end'])) . "'";
            $filter['filter_note_period_emi_end'] = $_SESSION['filter_note_period_emi_end'];
        } else {
            $filter['filter_note_period_emi_end'] = '';
        }
        $css_arr = array(
            'dp/dist/datepicker.min',
            's2/css/select2.min');
        $js_arr = array(
            's2/js/select2.min',
            'numeric',
            'dp/dist/datepicker.min');


        $assets_css = Asset::css($css_arr);



        $sql = 'Select a.*,account from app_fiscal_nfe_imported a join crm_accounts on a.crm_account_id = crm_accounts.id' . (empty($where) ? '' : " Where " . $where);

        $c = ORM::for_table('app_fiscal_nfe_imported')->join('crm_accounts', 'a.crm_account_id = crm_accounts.id')
                ->raw_query($sql);
        $cc = $c->find_many();

        $paginator = Paginator::raw_bootstrap(count($cc));
        $limit = $paginator['limit'];
        $offset = $paginator['startpoint'];

        $sql .='
            LIMIT ' . $limit . ' OFFSET ' . $offset;

        $d = ORM::for_table('app_fiscal_nfe_imported')->raw_query($sql)->find_many();
        $ui->assign('xheader', $assets_css);
        $ui->assign('xfooter', Asset::js($js_arr) . Asset::js_external(APP_URL . "/application/plugins/modulo_fiscal/assets/js/list.js"));
        $ui->assign('filter', $filter);
        $ui->assign('d', $d);
        $ui->assign('paginator', $paginator);
        $ui->assign('xjq', '
         $(\'.amount\').autoNumeric(\'init\', {

   
    dGroup: ' . $config['thousand_separator_placement'] . ',
    aPad: ' . $config['currency_decimal_digits'] . ',
    pSign: \'' . $config['currency_symbol_position'] . '\',
    aDec: \'' . $config['dec_point'] . '\',
    aSep: \'' . $config['thousands_sep'] . '\'

    });
 ');


        $ui->assign('_include', 'list-notes-in');

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

        break;

    case 'add-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) {
                 $retorno =array('status'=>'ERROR','msg'=>$_L['module_fiscal This note already imported']);
                header('Content-Type: application/json');
                echo json_encode($retorno);
                return;
            }
            
            ////Duplicatas
            $due_date = $_POST['due_date'];
            $row = $_POST['rowDuplicate'];
            $value = $_POST['value'];
            $document_number = $_POST['document_number'];
            $i = '0';
            foreach ($document_number as $doc_number) {
                $d['duplicates'][$i]['insert_update'] = true;
                $d['duplicates'][$i]['row'] = $row[$i];
                $d['duplicates'][$i]['value'] = Finance::amount_fix($value[$i]);
                $d['duplicates'][$i]['due_date'] = _formatDateDB($due_date[$i],$_c);
                $d['duplicates'][$i]['document_number'] = $document_number[$i];
                $uploader = new Uploader();
                $uploader->setDir('application/storage/billing/records/img/');
                $uploader->sameName(false);
                $uploader->setExtensions(array('jpg', 'jpeg', 'png', 'gif', 'pdf'));

                if ($uploader->uploadFile('attach_'.$row[$i])) {
                    $uploaded = $uploader->getUploadName();
                    list($width, $height, $type, $attr) = getimagesize('application/storage/billing/records/img/' . $uploaded);
                    $image = new Image();
                    $image->source_path = 'application/storage/billing/records/img/' . $uploaded;
                    $image->target_path = 'application/storage/billing/records/img/' . $uploaded;

                    if ($width > $height && $width > 800) {
                        $image->resize(800);
                    } else if ($height > $width && $height > 800) {
                        $image->resize(null, 800);
                    }
                    $d['duplicates'][$i]['attach'] =$uploaded;
                } else {
                    $d['duplicates'][$i]['attach']="";
                }

                
                $i++;
            }
            $controle_nfe = ORM::for_table('app_fiscal_nfe_imported')->create();
            $id= saveNoteAddItensStockAddProduct($controle_nfe, $_L, $_c,$d);
            $retorno =array('status'=>'OK','duplicates'=> $d['duplicates'],'app_fiscal_nfe_imported_id'=>$id);
        } else {
            $retorno =array('status'=>'ERROR','msg'=>$msg);
        }
    header('Content-Type: application/json');
    echo json_encode($retorno);
    break;
    case 'operation-successfull':
        _notify($_L['Input by Invoice manual'] . " " . $_L['module_fiscal Operation Successfull'],'s');
    break;
    case 'operation-error':
        _notify($_L['Input by Invoice manual'] . " " . $_L['module_fiscal Operation Error'],'e');
    break;

    case 'edit-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)) {

            $controle_nfe = ORM::for_table('app_fiscal_nfe_imported')->find_one(_post('id'));
            if ($controle_nfe) {
                $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'])
                        ->where_not_in('id', array($controle_nfe->id))
                        ->find_many();

                if (sizeof($valida) > 0) {
                    $retorno =array('status'=>'ERROR','msg'=>$_L['module_fiscal This note already imported']);
                    header('Content-Type: application/json');
                    echo json_encode($retorno);
                    return;
                }

                //recuperar valor do estoque, após exclusão dos registros do stock
                //Atualiza o valor do estoque sem o valor dos itens da nota editada,
                $stock_full = ORM::for_table('sys_stock')->where('type', 'entry')->where('app_fiscal_nfe_imported_id', $controle_nfe->id)->find_many();
                foreach ($stock_full as $s) {
                    $stock = ORM::for_table('sys_items_stock')->where("sys_items_id",$s->sys_items_id)->find_one();
                    if ($stock) {
                        $stock->current_stock =$stock->current_stock- $s->quantity;
                        $stock->save();
                    }
                }
                $x = ORM::for_table('sys_stock')->where('type', 'entry')->where('app_fiscal_nfe_imported_id', $controle_nfe->id)->delete_many();
    
                
                ////Duplicatas
            $due_date = $_POST['due_date'];
            $row = $_POST['rowDuplicate'];
            $value = $_POST['value'];
            $document_number = $_POST['document_number'];
            $i = '0';
            $expenses = ORM::for_table('module_billing_records')->where("app_fiscal_nfe_imported_id",_post('id'))->find_many();
            $arrayExpense=array();
            foreach ($expenses as $e){
                $transaction=ORM::for_table('sys_transactions')->where("billing_id_record",$e->id)->find_many();
                $arrayExpense[$e->row_duplicata]['alter_register']=count($transaction)>0?false:true;
                $arrayExpense[$e->row_duplicata]['module_billing_records_id']=$e->id;
            }
  
            $dados=json_decode($controle_nfe->json);
            if(isset($dados->duplicates)){
                $duplicates=$dados->duplicates;
            }else{
                $duplicates=array();
            }
            foreach ($document_number as $doc_number) {
                   if(isset($arrayExpense[$row[$i]]) && !$arrayExpense[$row[$i]]['alter_register']){
                        $d['duplicates'][$i]['insert_update'] = false;
                        foreach($duplicates as $dup){
                            if($dup->row==$row[$i]){
                                $d['duplicates'][$i]['row'] = $row[$i];
                                $d['duplicates'][$i]['value'] = $dup->value;
                                $d['duplicates'][$i]['due_date'] = $dup->due_date;
                                $d['duplicates'][$i]['document_number'] = $dup->document_number;
                                $d['duplicates'][$i]['attach']=$dup->attach;
                                break;// dados que não podem ser alterados
                            }
                        }
                   }else{
                        $d['duplicates'][$i]['insert_update'] = true;
                        $d['duplicates'][$i]['row'] = $row[$i];
                        $d['duplicates'][$i]['value'] = Finance::amount_fix($value[$i]);
                        $d['duplicates'][$i]['due_date'] = _formatDateDB($due_date[$i],$_c);
                        $d['duplicates'][$i]['document_number'] = $document_number[$i];
                    }
           
                    
                    if( $d['duplicates'][$i]['insert_update']==true){
                        $uploader = new Uploader();
                        $uploader->setDir('application/storage/billing/records/img/');
                        $uploader->sameName(false);
                        $uploader->setExtensions(array('jpg', 'jpeg', 'png', 'gif', 'pdf'));

                        if ($uploader->uploadFile('attach_'.$row[$i])) {
                            $uploaded = $uploader->getUploadName();
                            list($width, $height, $type, $attr) = getimagesize('application/storage/billing/records/img/' . $uploaded);
                            $image = new Image();
                            $image->source_path = 'application/storage/billing/records/img/' . $uploaded;
                            $image->target_path = 'application/storage/billing/records/img/' . $uploaded;

                            if ($width > $height && $width > 800) {
                                $image->resize(800);
                            } else if ($height > $width && $height > 800) {
                                $image->resize(null, 800);
                            }
                            
                            $d['duplicates'][$i]['attach'] =$uploaded;
                        } else {
                            $d['duplicates'][$i]['attach']=_post('image_'.$row[$i]);
                        }
                    }
                    $i++;
                }
                //remove as duplicatas registradas, que possuem registro em biling
                foreach($duplicates as $dup){
                    $find=false;
                    foreach ($row as $value){
                        if($dup->row==$value){
                            $find=true;
                        }
                    }
                   //se nao encontrou, e o registro permite exclusão
                   if(!$find && $arrayExpense[$dup->row]['alter_register']){
                       ORM::for_table('module_billing_records')->find_one($arrayExpense[$dup->row]['module_billing_records_id'])->delete();
                   }
                }
                
                $id=saveNoteAddItensStockAddProduct($controle_nfe, $_L, $_c,$d);
                _notify($_L['Input by Invoice manual'] . " " . $_L['Edited Successfull'], 's');
                $retorno =array('status'=>'OK','duplicates'=> $d['duplicates'],'app_fiscal_nfe_imported_id'=>$id);
     
            } else {
               $retorno =array('status'=>'ERROR','msg'=>$_L['Not found']);
            }
        } else {
            $retorno =array('status'=>'ERROR','msg'=>$msg);
        }

    header('Content-Type: application/json');
    echo json_encode($retorno);
    break;

    case 'add':
        $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', Asset::css($css_arr));
        $ui->assign('xfooter', Asset::js($js_arr) . Asset::js_external(APP_URL . "/application/plugins/modulo_fiscal/assets/js/note-in-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'] . '\';     
            _L[\'module_fiscal Insert value from duplicate number\'] = \'' . $_L['module_fiscal Insert value from duplicate number'] . '\';     
            _L[\'module_fiscal Insert value from duplicate value\'] = \'' . $_L['module_fiscal Insert value from duplicate value'] . '\';     
            _L[\'module_fiscal Insert value from duplicate due date\'] = \'' . $_L['module_fiscal Insert value from duplicate due date'] . '\';     
        ');

        $d['crm_account_id'] ="";
        $d['emission_date'] = "";
        $d['input_date'] = "";
        $d['extra_expense'] = "";
        $d['total'] = "";
        $d['number_itens'] = "";
        $d['notes'] = "";
        $d['total_freight'] = "";
        $d['total_safe'] = "";
        $d['total_other_expense'] = "";
        $d['total_discount'] = "";
        $d['total_icms'] = "";
        $d['total_icms_st'] = "";
        $d['total_ipi'] = "";
        $d['total_products'] = "";
        $d['total_pis'] = "";
        $d['total_cofins'] = "";
        $d['total_icms_uf_dest'] = "";
        $d['total_icms_uf_rem'] = "";
        $d['total_fcp'] = "";
        $d['total_ii'] = "";
        $d['products'] = "";
        $d['type'] = "";
        $d['key'] = "";
        $d['number'] = "";
        $d['series'] = "";
        $ui->assign('d', json_decode(json_encode($d)));
        $ui->assign('id', "");
        $cfop = ORM::for_table('cfop')->order_by_asc('id')->find_many();
        $ui->assign('cfop', $cfop);
        $ui->assign('row', 0);
        $ui->assign('rowDuplicate', 0);
        $ui->assign('_include', 'import-manual');
        $ui->display('wrapper.tpl');
        break;
    case 'edit':
        $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', Asset::css($css_arr));
        $ui->assign('xfooter', Asset::js($js_arr) . Asset::js_external(APP_URL . "/application/plugins/modulo_fiscal/assets/js/note-in-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'] . '\';     
            _L[\'module_fiscal Insert value from duplicate number\'] = \'' . $_L['module_fiscal Insert value from duplicate number'] . '\';     
            _L[\'module_fiscal Insert value from duplicate value\'] = \'' . $_L['module_fiscal Insert value from duplicate value'] . '\';     
            _L[\'module_fiscal Insert value from duplicate due date\'] = \'' . $_L['module_fiscal Insert value from duplicate due date'] . '\';     
           
');
        $id = $routes['3'];
        $d = ORM::for_table('app_fiscal_nfe_imported')->find_one($id);
        if ($d) {
            $ui->assign('d', json_decode($d->json));
            $ui->assign('id', $d->id);
    
             $expenses = ORM::for_table('module_billing_records')->where("app_fiscal_nfe_imported_id",$id)->find_many();
             $arrayExpense=array();
             foreach ($expenses as $e){
                $transaction=ORM::for_table('sys_transactions')->where("billing_id_record",$e->id)->find_many();
                $arrayExpense[$e->row_duplicata]['alter_register']=count($transaction)>0?false:true;
                $arrayExpense[$e->row_duplicata]['module_billing_records_id']=$e->id;
             }
             $ui->assign('expenses', $arrayExpense);
             
        } else {
            r2(U . 'modulo_fiscal/note_in/list', 'e', $_L['Not Found']);
        }
        $units = ORM::for_table('sys_items_unit')->order_by_asc('sorder')->find_many();
        $unit = array();
        foreach ($units as $s) {
            $unit[$s->id] = ($s->default) ? $_L[$s->initials] : $s->initials;
        }
        $ui->assign('unit', $unit);
        $ui->assign('row', 0);
        $ui->assign('rowDuplicate', 0);
        $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;

    default:
        echo 'action not defined';
}

function saveNoteAddItensStockAddProduct($controle_nfe, $_L, $_c,$d) {
    $dir = "application/plugins/modulo_fiscal";
    $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();

    $icms_uf_dest = $_POST['icms_uf_dest'];
    $icms_uf_rem = $_POST['icms_uf_rem'];
    $fcp = $_POST['fcp'];
    $ii = $_POST['ii'];
    $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'];
    $id_product = $_POST['id_product'];
    $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'];
    $controle_nfe->import = 'manual';
    $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();
    $i = '0';
    foreach ($products as $product) {
        $data['app_fiscal_nfe_imported_id'] = $controle_nfe->id;
        $data['xProd'] = $product;
        $data['NCM'] = preg_replace('/\D/', '', $ncm[$i]);
        //  $data['unit_prod']=$unit_sale[$i];
        $data['vUnCom'] = Finance::amount_fix($amount[$i]);
        
        // Leonardo - 16/10/2017
        $data['cost_price'] = Finance::amount_fix($cost_per_item[$i]);
        $data['sales_price'] = Finance::amount_fix($preco_atual[$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]);
//        }
        $data['qCom'] = Finance::amount_fix($qty[$i] * $itens_carton[$i]);
        
        $unit_prod = ORM::for_table('sys_items_unit')
                ->find_one($unit_sale[$i]);
        $data['uCom'] = $unit_prod['initials'];
        $data['id']=$id_product[$i];
        
        $id=$dataXml->gravaOPeracao($data, $_L['Input by Invoice manual']);
        
        $d['products'][$i]['id'] = $id;
        $d['products'][$i]['icms_uf_dest'] = $icms_uf_dest[$i];
        $d['products'][$i]['icms_uf_dest'] = $icms_uf_dest[$i];
        $d['products'][$i]['icms_uf_rem'] = $icms_uf_rem[$i];
        $d['products'][$i]['fcp'] = $fcp[$i];
        $d['products'][$i]['ii'] = $ii[$i];
        $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'] = $id;
        $d['products'][$i]['products'] = $product;
        $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->json = json_encode($d);
    $controle_nfe->save();
    return $controle_nfe->id;
}

Anon7 - 2022
AnonSec Team