| Últimas 20 atualizações de osmar |
|
|
Bom partiremos do conceito que você tenha a conexão com o mysql pois o intuito não é mostrar Ado.net e sim um controle de acesso e privilégios que servirá de base para o nosso Sistema. primeiro vamos criar as tabelas:
# MySQL-Front 5.1 (Build 4.13)
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */; /*!40101 SET SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES */; /*!40103 SET SQL_NOTES='ON' */;
# # Source for table menu #
CREATE TABLE `menu` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `IDPAI` int(11) DEFAULT NULL, `MENU` varchar(255) DEFAULT NULL, `FORMULARIO` varchar(50) DEFAULT NULL, `ORDEM` int(11) DEFAULT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=latin1;
CREATE TABLE `perfil_permissoes` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `IDPERFIL` int(11) DEFAULT NULL, `IDMENU` int(11) DEFAULT NULL, `VISUALIZA` int(11) DEFAULT NULL COMMENT '0 - NÃO 1-SIM', `INCLUI` int(11) DEFAULT NULL COMMENT '0 - NÃO 1-SIM', `ALTERA` int(11) DEFAULT NULL COMMENT '0 - NÃO 1-SIM', `EXCLUI` int(11) DEFAULT NULL COMMENT '0 - NÃO 1-SIM', `consulta` int(11) DEFAULT NULL, PRIMARY KEY (`ID`), KEY `perfilxpermissoes` (`IDPERFIL`), KEY `permissoesxmenu` (`IDMENU`) ) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=latin1;
# # Foreign keys for table perfil_permissoes #
ALTER TABLE `perfil_permissoes` ADD CONSTRAINT `perfilxpermissoes` FOREIGN KEY (`IDPERFIL`) REFERENCES `usuarios` (`Id`), ADD CONSTRAINT `permissoesxmenu` FOREIGN KEY (`IDMENU`) REFERENCES `menu` (`ID`);
table usuarios
CREATE TABLE `usuarios` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `nome` varchar(100) DEFAULT NULL, `senha` varchar(8) DEFAULT NULL, `ativo` char(1) DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
essas tabelas são necessárias para o nosso tópico. Com o Visual Studio 2008 aberto crie um projeto web e salve na pasta de preferência e inclua dois componentes um Treeview e um Xmldatasource.
Após adicionado os componentes no codebehind da página coloque o seguinte código:
using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using MySql.Data; using MySql.Data.MySqlClient;
namespace WebApplication1 { public partial class _Default : System.Web.UI.Page {
private MySqlConnection con = new MySqlConnection(ConfigurationManager.ConnectionStrings["vemartConnectionString"].ConnectionString); private string XML;
protected void ProcuraFilhos(int id) {
DataTable da = new DataTable(); MySqlDataReader reader = null; string Sql = " select men.idpai,men.id,men.menu,men.formulario,perfperm.inclui,perfperm.altera,perfperm.exclui from menu as men join perfil_permissoes as perfperm on perfperm.idmenu = men.id where perfperm.visualiza = 1 and men.idpai ="+Convert.ToString(id)+" order by men.ordem asc , men.idpai asc "; con.Close(); MySqlCommand com = new MySqlCommand(Sql, con); com.CommandType = CommandType.Text; try { con.Open(); reader = com.ExecuteReader();
da.Load(reader); } finally { con.Close(); reader.Close();
} for (int i = 0; i < da.Rows.Count; i++) {
XML += "<" + da.Rows[i]["menu"].ToString() + @" values=""" + da.Rows[i]["menu"].ToString() + @""">"; ProcuraFilhos(Convert.ToInt32(da.Rows[i]["id"].ToString())); XML += "";
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Neste artigo mostro como escrever os nós da Nfe em c# pela já conhecida Classe XmlTextWriter está incompleto mas já da para ser ter uma idéia e finalizar, nos próximos artigos iremos editar o xml e consumir os webservices da NFE um abraço!!!.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Xml;
namespace WindowsFormsApplication1 { public partial class Form1 : Form { public void Salva_ArquivoXml() { try { UTF8Encoding utf = new UTF8Encoding(); XmlTextWriter textWriter = new XmlTextWriter("C:\\myXmFile.xml",utf); textWriter.WriteStartDocument(); textWriter.WriteStartElement("Nfe","http://www.portalfiscal.inf.br/nfe");// Nó com tipo de Overload textWriter.WriteStartElement("infNFe");//Startando o elemento
textWriter.WriteStartAttribute("Id");//Atributos do Nó textWriter.WriteString("Nfe" + "35090448124770000172550010000000020000000820");// escrevendo no atributo textWriter.WriteEndAttribute();// finalizando o atributo
textWriter.WriteStartAttribute("versao");//Atributos do Nó textWriter.WriteString("1.10"); textWriter.WriteEndAttribute();
textWriter.WriteStartElement("ide");//ide textWriter.WriteStartElement("cUF");//Tag codigo Uf textWriter.WriteString("000001");// Código da Uf textWriter.WriteEndElement();
textWriter.WriteStartElement("cNF");//Tag codigo Uf textWriter.WriteString("000000027");// Código da Nf textWriter.WriteEndElement();
textWriter.WriteStartElement("natOp");//Tag codigo Uf textWriter.WriteString("VENDAS DE PRODUCAO DO ESTABELECIMENTO");// Natureza da Operação textWriter.WriteEndElement();
textWriter.WriteStartElement("indPag");//Tag codigo Uf textWriter.WriteString("1");// indicacao de pagamento textWriter.WriteEndElement();
textWriter.WriteStartElement("serie");//Tag codigo Uf textWriter.WriteString("1");// Série da Nota textWriter.WriteEndElement();
textWriter.WriteStartElement("nNF");//Tag codigo Uf textWriter.WriteString("11");// Numero da NF textWriter.WriteEndElement();
textWriter.WriteStartElement("dEmi");//Tag codigo Uf textWriter.WriteString("2009-05-18");// Data da Emissão textWriter.WriteEndElement();
textWriter.WriteStartElement("dSaiEnt");//Tag codigo Uf textWriter.WriteString("2009-05-18");// Data da Saida textWriter.WriteEndElement();
textWriter.WriteStartElement("tpNF");//Tag codigo Uf textWriter.WriteString("1");// Tipo da Nf textWriter.WriteEndElement();
textWriter.WriteStartElement("cMunFG");//Tag codigo Uf textWriter.WriteString("5220280");// Código do municipio fator Gerador textWriter.WriteEndElement();
textWriter.WriteStartElement("tpImp");//Tag codigo Uf textWriter.WriteString("1");// Tipo de impressao textWriter.WriteEndElement();
textWriter.WriteStartElement("tpEmis");//Tag codigo Uf textWriter.WriteString("1");// Tipo de Emissao textWriter.WriteEndElement();
textWriter.WriteStartElement("cDV");//Tag codigo Uf textWriter.WriteString("4");// Código verificador textWriter.WriteEndElement();
textWriter.WriteStartElement("tpAmb");//Tag codigo Uf textWriter.WriteString("2");// Tipo de ambiente textWriter.WriteEndElement();
textWriter.WriteStartElement("finNFe");//Tag codigo Uf textWriter.WriteString("1");// Finalidade da Nfe textWriter.WriteEndElement();
textWriter.WriteStartElement("procEmi");//Tag codigo Uf textWriter.WriteString("1");// Proc Nfe textWriter.WriteEndElement();
textWriter.WriteStartElement("verProc");//Tag codigo Uf textWriter.WriteString("1");// Versao da Proc Nfe textWriter.WriteEndElement(); textWriter.WriteEndElement();//ide
textWriter.WriteStartElement("emit");//ide
textWriter.WriteStartElement("CNPJ");//Tag codigo Uf textWriter.WriteString("04140021000163");// CNPJ Emitente textWriter.WriteEndElement();
textWriter.WriteStartElement("xNome");//Tag codigo Uf textWriter.WriteString("ACCESS");// Versao da Proc Nfe textWriter.WriteEndElement();
textWriter.WriteStartElement("xFant");//Tag codigo Uf textWriter.WriteString("ACCESS");// Versao da Proc Nfe textWriter.WriteEndElement();
textWriter.WriteStartElement("enderEmit");//Tag codigo Uf
textWriter.WriteStartElement("xLgr");//Tag codigo Uf textWriter.WriteString("RUA JOAO DE CARVALHO");// Versao da Proc Nfe textWriter.WriteEndElement();
textWriter.WriteStartElement("nro");//Tag codigo Uf textWriter.WriteString("15");// Versao da Proc Nfe textWriter.WriteEndElement();
textWriter.WriteStartElement("xBairro");//Tag codigo Uf textWriter.WriteString("SE");// Versao da Proc Nfe textWriter.WriteEndElement();
textWriter.WriteStartElement("cMun");//Tag codigo Uf textWriter.WriteString("5220280");// Versao da Proc Nfe textWriter.WriteEndElement();
textWriter.WriteStartElement("xMun");//Tag codigo Uf textWriter.WriteString("SAO PATRICIO");// Versao da Proc Nfe textWriter.WriteEndElement();
textWriter.WriteStartElement("UF");//Tag codigo Uf textWriter.WriteString("SP");// Versao da Proc Nfe textWriter.WriteEndElement();
textWriter.WriteStartElement("CEP");//Tag codigo Uf textWriter.WriteString("SP");// Versao da Proc Nfe textWriter.WriteEndElement();
textWriter.WriteStartElement("cPais");//Tag codigo Uf textWriter.WriteString("1058");// Versao da Proc Nfe textWriter.WriteEndElement();
textWriter.WriteStartElement("xPais");//Tag codigo Uf textWriter.WriteString("Brasil");// Versao da Proc Nfe textWriter.WriteEndElement();
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Como todos sabemos o código da chave da Nfe é gerado por uma série de regras como estas cuf = código da unidade de federação do emitente cnpj = cnpj do emitente mod = Código do modelo do Documento Fiscal. Utilizar 55 para identificação da NF-e serie = série da nota nnf = Número do Documento Fiscal aamm = data de emissão da nota cnf = Código numérico que compõe a Chave de Acesso. Número aleatório gerado pelo emitente para cada NF-e
Sabendo destas regras e nomeado os parametros já sabemos como trabalhar na nfe a série é obrigatória ter três digitos por isso utilizamos a proc procedure p_s_nfe_preenchenumero(serie,3,'0','E') que adiciona zeros a esquerda do mesmo modo a nnf e a cnf com nove digitos obrigatórios onde
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Olá pessoal neste artigo, vou mostrar como preencher digitos a esquerda e a direita e o simbolo que você quer preencher e a quantidade de vezes, tem alguns campos da Nfe que é necessário este preenchimento onde se entra com a Código que é o numero a ser preenchido, o numero de vezes a se repetir o preenchimento o simbolo se é um numero ou uma letra etc.. e o type é de que lado E esquerda e D direita espero que gostem pois não serve somente para a NFe
CREATE PROCEDURE P_S_NFE_PREENCHENUMERO ( codigo varchar(100), vezes integer, simbolo varchar(100), "TYPE" char(1)) returns ( result varchar(100)) as declare variable tamanho integer; begin if (type='E') then begin while (char_length(:codigo) < :vezes) do begin codigo = simbolo||codigo ; end result = :codigo ; end if (type='D') then begin while (char_length(:codigo) < :vezes) do begin codigo = codigo||simbolo ; end result = :codigo ; end
suspend; end
-->">
|
|
|
|
Olá Galera estou aqui postando novamente sobre a Nfe o processo todo começa com a normalização do banco de dados com a inclusão dos codigos da uf e dos municipios o objetivo destes posts é extrair todos as informações do banco para poder extrair o XML este é o formato da data da NFE. ops a p_s_nfe_preenchenumero está no artigo Preenchendo digitos a esquerda ou a direita Nfe Firebird 3/3
CREATE PROCEDURE P_S_NFEFORMATADATA ( data date) returns ( result varchar(12)) as declare variable dia varchar(2); declare variable mes varchar(2); declare variable ano varchar(10); begin
dia = cast(extract(day from data)as varchar(2)); mes = cast(extract(month from data)as varchar(2)); ano = cast(extract(year from data)as varchar(10));
execute procedure p_s_nfe_preenchenumero(dia,2,'0','E') returning_values :dia ;
execute procedure p_s_nfe_preenchenumero(mes,2,'0','E') returning_values :mes ;
result = ano||'-'||mes||'-'||dia;
suspend; end
-->">
|
|
|
|
Olá galera este é meu primeiro post espero que gostem a dica é sobre Nfe ufa!! para conseguir terminar este projeto em abril foi dose de leão mas, graças a Deus deu tudo certo ainda assim eu fiz apenas uma integraçao entre sistemas ai vai a rotina do digito verificador em firebird, há mod é uma udf. Abraços a todos e que deus abençoe a todos!!
CREATE PROCEDURE P_S_NFE_DIGITOVERIFICADOR ( codigo varchar(100)) returns ( result integer) as declare variable soma integer; declare variable k integer; declare variable contador integer; declare variable digito integer; declare variable inicial integer; declare variable valor integer; begin k = 2; soma = 0; contador = char_length(:codigo); result = 0; inicial = char_length(:codigo); while (contador <> 0 )do begin if (k > 9) then begin k = 2; end valor = substring(:codigo from inicial for 1); soma = soma + (valor * k); contador = contador - 1 ; k = k + 1 ; inicial = inicial -1 ; end soma = mod(soma,11); soma =(11 - soma); if (soma >= 10) then begin soma = 0; end result = soma ;
suspend; end^
-->">
|
|
|
| |
|