| 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 : |
<?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;
}