public static function getEstado($id) { $EstadoDao = new EstadoDao(); $estados = $EstadoDao->getEstado($id); if ($estados) { Flight::json($estados); } else { Flight::halt(404, 'Não há resultado para a busca'); } }
public function getFornecedores($offset, $limit, $busca = array()) { $offset = $offset == null ? 0 : $offset; $limit = $limit == null ? 0 : $limit; $sql = "SELECT DISTINCT frn.* FROM `tbl_fornecedores` AS frn "; if (array_key_exists('ped->id', $busca) && array_key_exists('ent->id', $busca)) { $sql .= "LEFT JOIN tbl_pedido_fornecedor AS ped ON frn.id = ped.id_fornecedor\n\t\t\t\t\tLEFT JOIN tbl_estoque_entrada AS ent ON ped.id = ent.id_pedido_fornecedor"; } if (array_key_exists('ped->id', $busca) && array_key_exists('ent->id', $busca)) { $sql .= " INNER JOIN tbl_produto_fornecedor AS rel ON rel.id_fornecedor = frn.id"; } if (is_array($busca) && count($busca) > 0) { $where = prepareWhere($busca); $sql .= " WHERE " . $where; } if ($limit > 0) { $pag = $offset / $limit + 1; $Paginacao = new PaginacaoController($sql); $Paginacao->num_paginas = 10; $Paginacao->resultados_pagina = $limit; $Paginacao->paginarResultado($pag); $links_paginacao = $Paginacao->paginasDisponiveis($pag); $sql = $Paginacao->_sql_paginacao; } $select = $this->conn->prepare($sql); if ($select->execute()) { if ($select->rowCount() > 0) { $EstadoDao = new EstadoDao(); $CidadeDao = new CidadeDao(); $telefoneDao = new TelefoneDao(); $saida['fornecedores'] = parse_arr_values($select->fetchAll(PDO::FETCH_ASSOC), 'all'); foreach ($saida['fornecedores'] as $key => $value) { $saida['fornecedores'][$key]['cidade'] = $CidadeDao->getCidade($value['cod_cidade']); $saida['fornecedores'][$key]['estado'] = $EstadoDao->getEstado($value['cod_estado']); $saida['fornecedores'][$key]['telefones'] = $telefoneDao->getTelefones(array('tbl_referencia' => 'tbl_fornecedores', 'id_referencia' => $value['id'], 'cplSql' => ' ORDER BY tt.id ASC')); } $saida['paginacao'] = isset($links_paginacao) ? $links_paginacao : null; return $saida; } else { return false; } } else { return false; } }
$queryPagamentos = "SELECT tpv.id_forma_pagamento,if(tpv.id_forma_pagamento = 6,COUNT(*),NULL) n_parcelas, ROUND(SUM(tpv.valor_pagamento),2) AS valor_pagamento,tfp.descricao_forma_pagamento\n\t\t\tFROM tbl_movimentacao_caixa AS tmc \n\t\t\tINNER JOIN tbl_pagamentos_venda AS tpv ON tmc.id_lancamento_entrada = tpv.id \n\t\t\tINNER JOIN tbl_forma_pagamento AS tfp ON tpv.id_forma_pagamento = tfp.id\n\t\t\tINNER JOIN tbl_conta_bancaria AS tcb ON tpv.id_conta_bancaria = tcb.id\n\t\t\tWHERE tmc.id_venda = {$id_venda}\n\t\t\tAND (tcb.id_tipo_conta <> 5 OR (tcb.id_tipo_conta =5 AND (tpv.flg_caixa_fechado = 0 OR tpv.flg_caixa_fechado IS NULL ) ))\n\t\t\tGROUP BY if(tpv.id_parcelamento IS NULL \n\t\t\tAND tpv.id_forma_pagamento = 6,tpv.id, if(tpv.id_forma_pagamento <> 6,tpv.id, (if(tpv.id_forma_pagamento <> 6,tpv.id,tpv.id_parcelamento))))"; $pagamentos = parse_arr_values($Conexao->select($queryPagamentos, true, null, null), 'all'); $pagamentos = is_array($pagamentos) ? $pagamentos : array(); } else { $id_controle_pagamento = $aux->id_controle_pagamento; $queryPagamentos = "SELECT tpv.id_forma_pagamento,if(tpv.id_forma_pagamento = 6,COUNT(*),NULL) n_parcelas, ROUND(SUM(tpv.valor_pagamento),2) AS valor_pagamento,tfp.descricao_forma_pagamento \n\t\t\tFROM tbl_pagamentos_venda AS tpv \n\t\t\tINNER JOIN tbl_forma_pagamento AS tfp ON tpv.id_forma_pagamento = tfp.id\n\t\t\tINNER JOIN tbl_conta_bancaria AS tcb ON tpv.id_conta_bancaria = tcb.id\n\t\t\tWHERE tpv.id_controle_pagamento = {$id_controle_pagamento}\n\t\t\tAND (tcb.id_tipo_conta <> 5 OR (tcb.id_tipo_conta =5 AND (tpv.flg_caixa_fechado = 0 OR tpv.flg_caixa_fechado IS NULL ) ))\n\t\t\tGROUP BY if(tpv.id_parcelamento IS NULL \n\t\t\tAND tpv.id_forma_pagamento = 6,tpv.id, if(tpv.id_forma_pagamento <> 6,tpv.id, (if(tpv.id_forma_pagamento <> 6,tpv.id,tpv.id_parcelamento))))"; $produtos = array(); $vlr_saldo_devedor = $aux->vlr_saldo_devedor; $pagamentos = parse_arr_values($Conexao->select($queryPagamentos, true, null, null), 'all'); $venda = array("venda_confirmada" => null); } $id_cliente = $aux->id_cliente; $cliente = $UsuarioDao->getUsuario($aux->id_empreendimento, $id_cliente); $estado = array('uf' => '', 'nome' => ''); if (is_numeric($cliente['id_estado'])) { $estado = $EstadoDao->getEstado($cliente['id_estado']); } $cidade = array('nome' => ''); if (is_numeric($cliente['id_cidade'])) { $cidade = $CidadeDao->getCidade($cliente['id_cidade']); } ?> <htmlpageheader name="myHTMLHeaderOdd" style="display:none"> <div> <div style="float: left; width: 80px;"> <span> <img style="width: 80px; height: 80px;" src="<?php echo baseUrl() . "assets/imagens/logos/" . $empreendimento['nme_logo']; ?> "> </span>
public static function calculaNfe() { $id_empreendimento = $_POST['id_empreendimento']; $id_venda = $_POST['id_venda']; $cod_operacao = $_POST['cod_operacao']; $VendaDao = new VendaDao(); $UsuarioDao = new UsuarioDao(); $ItemVendaDao = new ItemVendaDao(); $EmpreendimentoDao = new EmpreendimentoDao(); $OperacaoDao = new OperacaoDao(); $ProdutoDao = new ProdutoDao(); $EstadoDao = new EstadoDao(); $CidadeDao = new CidadeDao(); $ConfiguracaoDao = new ConfiguracaoDao(); $SerieDocumentoFiscalDao = new SerieDocumentoFiscalDao(); /** * Carregando dados da venda **/ $venda = $VendaDao->getVenda($id_venda); $venda['itens'] = $ItemVendaDao->getItens($id_venda); $venda['cliente'] = $UsuarioDao->getUsuario($id_empreendimento, $venda['id_cliente']); if (isset($venda['cliente']['id_cidade']) && !empty($venda['cliente']['id_cidade'])) { $cidadeDestinatario = $CidadeDao->getCidade($venda['cliente']['id_cidade']); $estadoDestinatario = $EstadoDao->getEstado($venda['cliente']['id_estado']); } else { Flight::halt(406, json_encode(array('mensagem' => 'Estado/Cidade não informado no cadastro do cliente!'))); } $venda['empreendimento'] = $EmpreendimentoDao->getEmpreendimentoByIdAndUF($id_empreendimento, $estadoDestinatario['uf']); $cidadeEmitente = $CidadeDao->getCidade($venda['empreendimento']['cod_cidade']); $estadoEmitente = $EstadoDao->getEstado($venda['empreendimento']['cod_estado']); $venda['operacao'] = $OperacaoDao->getOperacao($cod_operacao); $configuracoes = $ConfiguracaoDao->getConfiguracoes($id_empreendimento); if (!isset($configuracoes['id_serie_padrao_nfe'])) { $erros = array("mensagem" => "Configuração \"Modelo Documento/Série Padrão p/ NF-e\" não encontrada"); Flight::response()->status(406)->header('Content-Type', 'application/json')->write(json_encode($erros))->send(); } $SerieDocumentoFiscal = $SerieDocumentoFiscalDao->getByID($configuracoes['id_serie_padrao_nfe']); $dados_emissao = new stdClass(); $dados_emissao->dsc_operacao = $venda['operacao']['dsc_operacao']; $dados_emissao->serie_documento_fiscal = $SerieDocumentoFiscal['serie_documento_fiscal']; $dados_emissao->num_documento_fiscal = $SerieDocumentoFiscal['num_ultimo_documento_fiscal']++; $dados_emissao->cod_venda = $id_venda; $dados_emissao->cod_empreendimento = $id_empreendimento; $dados_emissao->nme_modelo_documento = $SerieDocumentoFiscal['dsc_modelo_documento_fiscal']; /** * Configurando os dados do emitente **/ $emitente = new MotorFiscal\Emitente(); $emitente->identificador = $venda['empreendimento']['id']; $emitente->CNPJ = $venda['empreendimento']['num_cnpj']; $emitente->xNome = $venda['empreendimento']['nme_razao_social']; $emitente->xFant = $venda['empreendimento']['nme_fantasia']; $emitente->IE = $venda['empreendimento']['num_inscricao_estadual']; $emitente->IEST = $venda['empreendimento']['num_inscricao_estadual_st']; $emitente->CRT = $venda['empreendimento']['num_regime_tributario']; $emitente->PercCreditoSimples = $venda['empreendimento']['num_percentual_credito_simples']; $emitente->CEP = $venda['empreendimento']['num_cep']; $emitente->xLgr = $venda['empreendimento']['nme_logradouro']; $emitente->nro = $venda['empreendimento']['num_logradouro']; $emitente->xBairro = $venda['empreendimento']['nme_bairro_logradouro']; $emitente->cMun = $cidadeEmitente['nome']; $emitente->UF = $estadoEmitente['uf']; $emitente->id_cidade = $cidadeEmitente['id']; $emitente->id_estado = $estadoEmitente['id']; $emitente->ContribuinteIPI = $venda['empreendimento']['flg_contribuinte_ipi']; $emitente->num_versao_ibpt = $configuracoes['num_versao_ibpt']; /** * Configurando os dados do destinatário **/ $destinatario = new MotorFiscal\Destinatario(); $destinatario->identificador = $venda['cliente']['id']; $destinatario->CPF = $venda['cliente']['cpf']; $destinatario->idEstrangeiro = $venda['cliente']['num_registro_estrangeiro']; $destinatario->xNome = $venda['cliente']['nome']; $destinatario->email = $venda['cliente']['email']; $destinatario->tipo_cadastro = $venda['cliente']['tipo_cadastro']; $destinatario->CEP = $venda['cliente']['cep']; $destinatario->xLgr = $venda['cliente']['endereco']; $destinatario->nro = $venda['cliente']['numero']; $destinatario->xBairro = $venda['cliente']['bairro']; $destinatario->cMun = $cidadeDestinatario['nome']; $destinatario->UF = $estadoDestinatario['uf']; $destinatario->id_cidade = $cidadeDestinatario['id']; $destinatario->id_estado = $estadoDestinatario['id']; if ($venda['cliente']['tipo_cadastro'] === "pj") { $destinatario->CNPJ = $venda['cliente']['cnpj']; $destinatario->IE = $venda['cliente']['inscricao_estadual']; $destinatario->IEST = $venda['cliente']['inscricao_estadual_st']; $destinatario->IM = $venda['cliente']['num_inscricao_municipal']; $destinatario->xFant = $venda['cliente']['nome_fantasia']; if ((int) $venda['cliente']['flg_contribuinte_icms'] === 1) { // Se for contribuinte de ICMS if ((int) $venda['cliente']['flg_isento_inscricao_estadual'] === 1) { // Se for contribuinte de ICMS ISENTO de incrição $destinatario->indIEDest = 2; } else { $destinatario->indIEDest = 1; } //É contribuinte mas não é ISENTO. } else { $destinatario->indIEDest = 9; } // Se não não é contribuinte do ICMS então ele é igual a nove. } /** * Configurando os dados da operação **/ $operacao = new stdClass(); $operacao->identificador = $venda['operacao']['cod_operacao']; $operacao->CFOPMercadoria = $venda['operacao']['num_cfop_mercadoria']; $operacao->CFOPMercadoriaST = $venda['operacao']['num_cfop_mercadoria_st']; $operacao->CFOPMercadoriaSTSubstituido = $venda['operacao']['num_cfop_mercadoria_st_subst']; $operacao->CFOPProduto = $venda['operacao']['num_cfop_produto']; $operacao->CFOPProdutoST = $venda['operacao']['num_cfop_produto_st']; $operacao->TipoOperacao = 0; $operacao->identificacao = 0; $operacao->finalidade = 0; $operacao->indFinal = 0; $operacao->indPres = 0; $operacao->NaturezaOperacao = ''; /** * Configurando os parâmetros da NF-e **/ self::$NF = new MotorFiscal\DocumentoFiscal($emitente, $destinatario, $operacao); self::$NF->buscaTribFunctionICMS = function ($produto, $operacao, $emitente, $destinatario) { return Trib::ICMS($produto, $operacao, $emitente, $destinatario); }; self::$NF->buscaTribFunctionIPI = function ($produto, $operacao, $emitente, $destinatario) { return Trib::IPI($produto, $operacao, $emitente, $destinatario); }; self::$NF->buscaTribFunctionPIS = function ($produto, $operacao, $emitente, $destinatario) { return Trib::PIS($produto, $operacao, $emitente, $destinatario); }; self::$NF->buscaTribFunctionCOFINS = function ($produto, $operacao, $emitente, $destinatario) { return Trib::COFINS($produto, $operacao, $emitente, $destinatario); }; self::$NF->buscaTribFunctionIBPT = function ($produto, $emitente, $detinatario) { return Trib::IBPT($produto, $emitente, $detinatario); }; self::$NF->itens = array(); // Configurando produtos e calculando impostos foreach ($venda['itens'] as $key => $item) { $item['data'] = $ProdutoDao->getProduto($item['id_produto'], $id_empreendimento); $produto = new MotorFiscal\Produto(); $produto->identificador = $item['data']['id_produto']; $produto->cProd = $item['data']['id']; $produto->cEAN = $item['data']['codigo_barra']; $produto->xProd = $item['data']['nome']; $produto->NCM = $item['data']['cod_ncm']; $produto->EXTIPI = $item['data']['ex_tipi']; $produto->CEST = $item['data']['num_cest']; $produto->uCom = $item['data']['dsc_unidade_medida']; $produto->qCom = $item['qtd']; $produto->vUnCom = $item['vlr_produto']; $produto->cEANTrib = $item['data']['codigo_barra']; $produto->uTrib = $item['data']['dsc_unidade_medida']; $produto->qTrib = $item['qtd']; $produto->vUnTrib = $item['vlr_produto']; $produto->TipoTributacaoIPI = $item['data']['TipoTributacaoIPI']; $produto->FormaAquisicao = $item['data']['FormaAquisicao']; $produto->vProd = $item['qtd'] * $item['vlr_produto']; $produto->vDesc = $item['qtd'] * $item['valor_desconto_real']; // TODO: Dúvidas para sanar com Fischer $produto->NVE = 0; // Como preencher? $produto->CFOP = 0; // Como preencher? $produto->indTot = 1; // Como preencher? $produto->vFrete = 0; // Como preencher? $produto->vOutro = 0; // Como preencher? $produto->vSeg = 0; // Como preencher? $item = self::$NF->addItem($produto); $venda['itens'][$key] = $item; } // Consolidando e totalizando self::$NF->totalizarDocumento(); $dadosNf = array('informacoes_adicionais_contribuinte' => $_POST['informacoes_adicionais_contribuinte'], 'dados_emissao' => $dados_emissao, 'emitente' => $emitente, 'destinatario' => $destinatario, 'itens' => self::$NF->itens, 'ICMSTot' => self::$NF->ICMSTot); Flight::json($dadosNf); }
public function getNfe($busca) { $sql = "SELECT * FROM tbl_nota_fiscal "; if (is_array($busca) && count($busca) > 0) { $where = prepareWhere($busca); $sql .= " WHERE " . $where; } $select = $this->conn->prepare($sql); if ($select->execute()) { if ($select->rowCount() > 0) { $nota = $select->fetch(PDO::FETCH_OBJ); $CidadeDao = new CidadeDao(); $EstadoDao = new EstadoDao(); $NotaFiscalItemDao = new NotaFiscalItemDao(); $itens = $NotaFiscalItemDao->getItems($nota->cod_nota_fiscal); $saida = (object) array("dados_emissao" => (object) array(), "emitente" => (object) array(), "destinatario" => (object) array(), "itens" => array(), "ICMSTot" => (object) array(), "transportadora" => (object) array()); $saida->dados_emissao->dsc_operacao = $nota->natureza_operacao; $saida->dados_emissao->serie_documento_fiscal = $nota->serie; $saida->dados_emissao->num_documento_fiscal = $nota->numero; $saida->dados_emissao->cod_nota_fiscal = $nota->cod_nota_fiscal; $saida->dados_emissao->cod_venda = $nota->cod_venda; $saida->dados_emissao->cod_empreendimento = $nota->cod_empreendimento; $saida->dados_emissao->nme_modelo_documento = $nota->modelo_documento; $saida->dados_emissao->cod_nota_fiscal = $nota->cod_nota_fiscal; $saida->dados_emissao->status = $nota->status; $saida->dados_emissao->status_sefaz = $nota->status_sefaz; $saida->dados_emissao->local_destino = $nota->local_destino; $saida->dados_emissao->finalidade_emissao = $nota->finalidade_emissao; $saida->dados_emissao->consumidor_final = $nota->consumidor_final; $saida->dados_emissao->forma_pagamento = $nota->forma_pagamento; $saida->dados_emissao->data_emissao = $nota->data_emissao; $saida->dados_emissao->data_entrada_saida = $nota->data_entrada_saida; $saida->dados_emissao->presenca_comprador = $nota->presenca_comprador; $saida->dados_emissao->tipo_documento = $nota->tipo_documento; $saida->dados_emissao->caminho_danfe = $nota->caminho_danfe; $saida->dados_emissao->caminho_xml_nota_fiscal = $nota->caminho_xml_nota_fiscal; $saida->transportadora->modalidade_frete = $nota->modalidade_frete; $saida->emitente->identificador = $nota->cod_empreendimento; $saida->emitente->CNPJ = $nota->cnpj_emitente; $saida->emitente->CPF = null; // não tem na focus $saida->emitente->xNome = $nota->nome_emitente; $saida->emitente->xFant = $nota->nome_fantasia_emitente; $saida->emitente->IE = $nota->inscricao_estadual_emitente; $saida->emitente->IEST = $nota->inscricao_estadual_st_emitente; $saida->emitente->CRT = $nota->regime_tributario_emitente; $saida->emitente->CEP = $nota->cep_emitente; $saida->emitente->nme_logradouro = $nota->logradouro_emitente; $saida->emitente->num_logradouro = $nota->numero_emitente; $saida->emitente->nme_bairro_logradouro = $nota->bairro_emitente; $saida->emitente->cidade = $CidadeDao->getCidade($nota->cod_cidade_emitente); $saida->emitente->estado = $EstadoDao->getEstado($nota->cod_estado_emitente); $saida->destinatario->identificador = $nota->cod_cliente; $saida->destinatario->CNPJ = $nota->cnpj_destinatario; $saida->destinatario->CPF = $nota->cpf_destinatario; $saida->destinatario->idEstrangeiro = $nota->id_estrangeiro_destinatario; $saida->destinatario->xNome = $nota->nome_destinatario; $saida->destinatario->xFant = $nota->nome_destinatario; $saida->destinatario->indIEDest = $nota->indicador_inscricao_estadual_destinatario; $saida->destinatario->IE = $nota->inscricao_estadual_destinatario; $saida->destinatario->IEST = null; // Não tem na focus $saida->destinatario->IM = $nota->inscricao_estadual_st_destinatario; // * $saida->destinatario->email = $nota->email_destinatario; $saida->destinatario->tipo_cadastro = $nota->tipo_cadastro_destinatario; $saida->destinatario->CEP = $nota->cep_destinatario; $saida->destinatario->nme_logradouro = $nota->logradouro_destinatario; $saida->destinatario->num_logradouro = $nota->numero_destinatario; $saida->destinatario->nme_bairro_logradouro = $nota->bairro_destinatario; $saida->destinatario->cidade = (object) $CidadeDao->getCidade($nota->cod_cidade_destinatario); $saida->destinatario->estado = (object) $EstadoDao->getEstado($nota->cod_estado_destinatario); foreach ($itens as $key => $prd) { $item = (object) array("imposto" => (object) array("vTotTrib" => null, "ICMS" => (object) array(), "IPI" => (object) array(), "PIS" => (object) array(), "COFINS" => (object) array()), "prod" => (object) array()); $item->nItem = $prd->numero_item; $item->ICMSTot = null; // onde esta essa cara? $item->imposto->ICMS->orig = $prd->icms_origem; $item->imposto->ICMS->CST = $prd->icms_situacao_tributaria; $item->imposto->ICMS->CSOSN = null; /* gravar, mas não vai */ $item->imposto->ICMS->modBC = $prd->icms_modalidade_base_calculo; $item->imposto->ICMS->pRedBC = $prd->icms_reducao_base_calculo; $item->imposto->ICMS->vBC = $prd->icms_base_calculo; $item->imposto->ICMS->vBC_Desonerado = null; /* gravar, mas não vai */ $item->imposto->ICMS->pICMS = $prd->icms_aliquota; $item->imposto->ICMS->pICMS_Desonerado = null; /* gravar, mas não vai */ $item->imposto->ICMS->vICMSOp = $prd->icms_valor_operacao; $item->imposto->ICMS->pDif = $prd->icms_percentual_diferimento; $item->imposto->ICMS->vICMSDif = $prd->icms_valor_diferido; $item->imposto->ICMS->vICMS = $prd->icms_valor; $item->imposto->ICMS->vICMS_Desonerado = $prd->icms_valor_desonerado; $item->imposto->ICMS->modBCST = $prd->icms_modalidade_base_calculo_st; $item->imposto->ICMS->pMVAST = $prd->icms_margem_valor_adicionado_st; $item->imposto->ICMS->pRedBCST = $prd->icms_reducao_base_calculo_st; $item->imposto->ICMS->vBCST = $prd->icms_base_calculo_st; $item->imposto->ICMS->vBCST_NaoDestacado = null; /* gravar, mas não vai */ $item->imposto->ICMS->pICMSST = $prd->icms_aliquota_st; $item->imposto->ICMS->vICMSST = $prd->icms_valor_st; $item->imposto->ICMS->vICMSST_NaoDestacado = null; /* gravar, mas não vai */ $item->imposto->ICMS->UFST = $prd->icms_base_calculo_uf_destino; $item->imposto->ICMS->pBCOp = null; /* gravar, mas não vai */ $item->imposto->ICMS->vBCSTRet = $prd->icms_base_calculo_retido_st; $item->imposto->ICMS->vICMSSTRet = $prd->icms_valor_retido_st; $item->imposto->ICMS->vICMSDeson = null; /*icms_valor_desonerado*/ $item->imposto->ICMS->motDesICMS = $prd->icms_motivo_desoneracao; $item->imposto->ICMS->pCredSN = null; $item->imposto->ICMS->vCredICMSSN = null; $item->imposto->ICMS->vBCSTDest = null; /* gravar, mas não vai */ $item->imposto->ICMS->vICMSSTDest = $prd->icms_valor_uf_destino; $item->imposto->PIS->CST = $prd->pis_situacao_tributaria; $item->imposto->PIS->vBC = $prd->pis_base_calculo; $item->imposto->PIS->pPIS = $prd->pis_aliquota_porcentual; $item->imposto->PIS->vPIS = $prd->pis_valor; $item->imposto->PIS->qBCProd = $prd->pis_quantidade_vendida; $item->imposto->PIS->vAliqProd = null; // não é usado, tem que gravar $item->imposto->IPI->clEnq = $prd->ipi_classe_enquadramento; $item->imposto->IPI->CNPJProd = $prd->ipi_cnpj_produtor; $item->imposto->IPI->cSelo = $prd->ipi_codigo_selo_controle; $item->imposto->IPI->qSelo = $prd->ipi_quantidade_selo_controle; $item->imposto->IPI->cEnq = $prd->ipi_codigo_enquadramento_legal; $item->imposto->IPI->CST = $prd->ipi_situacao_tributaria; $item->imposto->IPI->vBC = $prd->ipi_base_calculo; $item->imposto->IPI->qUnid = $prd->ipi_quantidade_total; $item->imposto->IPI->vUnid = $prd->ipi_valor_por_unidade_tributavel; $item->imposto->IPI->pIPI = $prd->ipi_aliquota; $item->imposto->IPI->vIPI = $prd->ipi_valor; $item->imposto->COFINS->CST = $prd->cofins_situacao_tributaria; $item->imposto->COFINS->vBC = $prd->cofins_base_calculo; $item->imposto->COFINS->pCOFINS = $prd->cofins_aliquota_porcentual; $item->imposto->COFINS->qBCProd = $prd->cofins_quantidade_vendida; $item->imposto->COFINS->vAliqProd = null; // não é usado, tem que gravar $item->imposto->COFINS->vCOFINS = $prd->cofins_valor; $item->prod->identificador = $prd->codigo_produto; $item->prod->TipoTributacaoIPI = null; // não é usado, tem que gravar $item->prod->OrigemMercadoria = null; // não é usado, tem que gravar $item->prod->FormaAquisicao = null; // não é usado, tem que gravar $item->prod->cProd = $prd->codigo_produto; $item->prod->cEAN = null; // (é o codigo de barras , colocar para enviar para a focus) $item->prod->xProd = $prd->descricao; $item->prod->NCM = $prd->codigo_ncm; $item->prod->NVE = null; // não é usado, tem que gravar $item->prod->EXTIPI = null; // codigo_ex_tipi $item->prod->CFOP = $prd->cfop; $item->prod->uCom = $prd->unidade_comercial; $item->prod->qCom = $prd->quantidade_comercial; $item->prod->vUnCom = $prd->valor_unitario_comercial; $item->prod->vProd = $prd->valor_bruto; $item->prod->cEANTrib = null; // (é o codigo de barras tributario , colocar para enviar para a focus) $item->prod->uTrib = $prd->unidade_tributavel; $item->prod->qTrib = $prd->quantidade_tributavel; $item->prod->vUnTrib = $prd->valor_unitario_tributavel; $item->prod->vFrete = $prd->valor_frete; $item->prod->vSeg = $prd->valor_seguro; $item->prod->vDesc = $prd->valor_desconto; $item->prod->vOutro = $prd->valor_outras_despesas; $item->prod->indTot = $prd->inclui_no_total; $saida->itens[] = $item; } $saida->ICMSTot->vBC = $nota->icms_base_calculo; $saida->ICMSTot->vICMS = $nota->icms_base_calculo; $saida->ICMSTot->vICMSDeson = $nota->icms_valor_total_desonerado; $saida->ICMSTot->vBCST = $nota->icms_base_calculo_st; $saida->ICMSTot->vST = $nota->icms_valor_total_st; $saida->ICMSTot->vProd = $nota->valor_produtos; $saida->ICMSTot->vFrete = $nota->valor_frete; $saida->ICMSTot->vSeg = $nota->valor_seguro; $saida->ICMSTot->vDesc = $nota->valor_desconto; $saida->ICMSTot->vII = $nota->valor_total_ii; $saida->ICMSTot->vIPI = $nota->valor_ipi; $saida->ICMSTot->vPIS = $nota->valor_pis; $saida->ICMSTot->vCOFINS = $nota->valor_cofins; $saida->ICMSTot->vOutro = $nota->valor_outras_despesas; $saida->ICMSTot->vNF = $nota->valor_total; $saida->ICMSTot->vTotTrib = null; // não é usado, tem que gravar return $saida; } else { return false; } } else { $e = $select->errorInfo(); throw new Exception($e[2], 1); } }