//Gerar XML private void btnGeraXML_Click(object sender, EventArgs e) { int nCTe = 0; try { Cursor = Cursors.WaitCursor; txtLog.Clear(); btnProcessar.Enabled = false; try { nCTe = Convert.ToInt32(txtnCTe.Text); } catch { nCTe = 1; } bool go = false; /* Gerar XML CT-e */ txtLog.Text += "Método: GeraCTe\r\n"; string[] tIde, tEmit, tRem, tExped, tReceb, tvPrest, tDest, tImp, tRodo, tInfCTeNorm; string[,] tRemInfNF, tInfQ, tDocAnt; tIde = new string[36]; tEmit = new string[10]; tRem = new string[11]; tExped = new string[12]; tReceb = new string[12]; tvPrest = new string[2]; tDest = new string[13]; tImp = new string[6]; tRodo = new string[4]; tInfCTeNorm = new string[6]; tRemInfNF = new string[3, 11]; tInfQ = new string[2, 3]; tDocAnt = new string[10, 8]; Random r = new Random(6); int cCTe = (r.Next(6) + DateTime.Now.Millisecond); /* <ide> TAG de grupo das informações de identificação da NF-e */ tIde[0] = String.Format("{0:D9}", cCTe); //<cCT> tIde[1] = "5357"; //CFOP tIde[2] = "TRANSPORTE RODOVIARIO DE CARGAS"; //<natOp> tIde[3] = "0"; //<forPag> tIde[4] = "0"; //<serie> tIde[5] = nCTe.ToString(); //<nCT> tIde[6] = DateTime.Now.ToString("yyyy-MM-dd") + "T10:00:00"; //<dhEmi> ex: 2009-08-01T10:00:00 tIde[7] = "1"; //<tpEmis> tIde[8] = "0"; //<tpCTe> tIde[9] = "3550308"; //<cMunEmi> tIde[10] = "SAO PAULO"; //<xMunEmi> tIde[11] = "SP"; //<UFEmi> tIde[12] = "01"; //<modal> tIde[13] = "0"; //<tpServ> tIde[14] = "3550308"; //<cMunIni> tIde[15] = "SAO PAULO"; //<xMunIni> tIde[16] = "SP"; //<UFIni> tIde[17] = "3106200"; //<cMunFim> tIde[18] = "BELO HORIZONTE"; //<xMunFim> tIde[19] = "MG"; //<UFFim> tIde[20] = "0"; //<retira> tIde[21] = "0"; //<toma> // informar apenas se o valor do index 21 for igual a "4" tIde[22] = string.Empty; //<toma04> CNPJ ou CPF tIde[23] = string.Empty; //<toma04> IE tIde[24] = string.Empty; //<toma04> xNome tIde[25] = string.Empty; //<toma04> xFant tIde[26] = string.Empty; //<toma04> xLgr tIde[27] = string.Empty; //<toma04> xNum tIde[28] = string.Empty; //<toma04> xCpl tIde[29] = string.Empty; //<toma04> xBairro tIde[30] = string.Empty; //<toma04> cMun tIde[31] = string.Empty; //<toma04> xMun tIde[32] = string.Empty; //<toma04> CEP tIde[33] = string.Empty; //<toma04> UF tIde[34] = string.Empty; //<toma04> cPais tIde[35] = string.Empty; //<toma04> xPais /* <emit> TAG de grupo de identificação do emitente da NF-e */ tEmit[0] = "Transportadora de Carga"; //<xNome> tEmit[1] = "TransCarga"; //<xFant> tEmit[2] = "Av Rangel Pestana"; //<xLgr> tEmit[3] = "300"; //<nro> tEmit[4] = "10 andar"; //<xCpl> tEmit[5] = "Mirante"; //<xBairro> tEmit[6] = "3550308"; //<cMun> tEmit[7] = "SAO PAULO"; //<xMun> tEmit[8] = "01301910"; //<CEP> tEmit[9] = "1132433400"; //<fone> /* <rem> TAG de grupo de informações do remetente das mercadorias transportadas pelo CT-e */ tRem[0] = "11222333000181"; //<CNPJ> tRem[1] = txtIE.Text; //<IE> tRem[2] = "Joao sem Terra"; //<xNome> tRem[3] = "1132201234"; //<fone> tRem[4] = "Praca Matriz"; //<xLgr> tRem[5] = "S/N"; //<nro> tRem[6] = "SAO PAULO"; //<xBairro> tRem[7] = txtCodMunicipio.Text; //<cMun> tRem[8] = txtMunicipio.Text; //<xMun> tRem[9] = "01000000"; //<CEP> tRem[10] = "SP"; //<UF> /* infNF */ for (int x = 0; x < 3; x++) { tRemInfNF[x, 0] = "0"; //<serie> tRemInfNF[x, 1] = String.Format("{0:D6}", (x + 1)); //<nDoc> tRemInfNF[x, 2] = DateTime.Now.ToString("yyyy-MM-dd"); //<dEmi> tRemInfNF[x, 3] = "1000"; //<vBC> tRemInfNF[x, 4] = "120"; //<vICMS> tRemInfNF[x, 5] = "0"; //<vBCST> tRemInfNF[x, 6] = "0"; //<vST> tRemInfNF[x, 7] = "1000"; //<vProd> tRemInfNF[x, 8] = "10.00"; //<vNF> tRemInfNF[x, 9] = "5112"; //<nCFOP> tRemInfNF[x, 10] = "10.000"; //<nPeso> } /* <exped> TAG de grupo de informações do Expedidor da Carga */ tExped[0] = "34261131000144"; //<CNPJ> ou <CPF> tExped[1] = txtIE.Text; //IE tExped[2] = "Empresa de Destino Teste"; //<xNome> tExped[3] = "8388881234"; //<fone> tExped[4] = "Rua Padre Casemiro Quiroga"; //<xLgr> tExped[5] = "236"; //<nro> tExped[6] = "Complemento"; //<xCpl> tExped[7] = "Bairro Teste"; //<xBairro> tExped[8] = "2927408"; //<cMun> tExped[9] = "Salvador"; //<xMun> tExped[10] = "41720400"; //<CEP> tExped[11] = "BA"; //<UF> /* <receb> TAG de grupo de informações do Recebedor da carga */ tReceb[0] = "34261131000144"; //<CNPJ> ou <CPF> tReceb[1] = txtIE.Text; //IE tReceb[2] = "Empresa de Destino Teste"; //<xNome> tReceb[3] = "8388881234"; //<fone> tReceb[4] = "Rua Padre Casemiro Quiroga"; //<xLgr> tReceb[5] = "236"; //<nro> tReceb[6] = "Complemento"; //<xCpl> tReceb[7] = "Bairro Teste"; //<xBairro> tReceb[8] = "2927408"; //<cMun> tReceb[9] = "Salvador"; //<xMun> tReceb[10] = "41720400"; //<CEP> tReceb[11] = "BA"; //<UF> /* <dest> TAG de grupo de identificação do Destinatário da NF-e */ tDest[0] = "34261131000144"; //<CNPJ> ou <CPF> tDest[1] = "Empresa de Destino Teste"; //<xNome> tDest[2] = "Rua Padre Casemiro Quiroga"; //<xLgr> tDest[3] = "236"; //<nro> tDest[4] = "Complemento"; //<xCpl> tDest[5] = "Bairro Teste"; //<xBairro> tDest[6] = "2927408"; //<cMun> tDest[7] = "Salvador"; //<xMun> tDest[8] = "BA"; //<UF> tDest[9] = "41720400"; //<CEP> tDest[10] = "1058"; //<cPais> tDest[11] = "BRASIL"; //<xPais> tDest[12] = "1130302233"; //<fone> /* TAG de grupo de valores da prestação de serviço */ tvPrest[0] = "200.00"; //vTPrest tvPrest[1] = "200.00"; //vRec /* TAG de grupo de informações relativas aos Impostos */ /* CST do serviço: 00 - ICMS Normal; 20 - ICMS com redução de Base de Cálculo; 40 - ICMS isenção; 41 - ICMS não tributada; 51 - ICMS diferido; 80 - ICMS pagto atribuído ao tomador ou ao terceiro previsto para substituição tributária; 81 - ICMS devido para outras UF; 90 - ICMS outras situações. */ tImp[0] = "00"; //CST - classificação tributária do serviço tImp[1] = "200.00"; //vBC - Valor da BC do ICMS tImp[2] = "12.00"; //pICMS - Alíquota do ICMS tImp[3] = "24.00"; //vICMS - Valor do ICMS tImp[4] = ""; //vCred - Valor do Crédito outorgado/Presumido tImp[5] = ""; //pRedBC - Percentual de redução da BC /* Dados específicos do Transporte Rodoviário */ tRodo[0] = "12345678901234"; //RNTRC tRodo[1] = DateTime.Now.ToString("yyyy-MM-dd"); //dPrev tRodo[2] = "0"; //lota tInfCTeNorm[0] = "1.00"; //<infCarga> vMerc tInfCTeNorm[1] = "MEU PRODUTO DE TESTES"; //<infCarga> proPred tInfCTeNorm[2] = "GRANEL"; //<infCarga> xOutCat /* infQ - Informações de quantidades da Carga do CT-e */ for (int x = 0; x < 2; x++) //--> substitua 1, pela quantidade de registro de sua tabela. Neste ex. gerará 2 registros. { tInfQ[x, 0] = "01"; //<infQ> cUnid tInfQ[x, 1] = "PESO BRUTO"; //<infQ> tpMed tInfQ[x, 2] = "111.15"; //<infQ> qCarga } /* Informações de identificação dos documentos de Transporte Anterior */ for (int x = 0; x < 10; x++) //--> substitua 7, pela quantidade de registro de sua tabela. Neste ex. gerará 8 registros. { tDocAnt[x, 0] = "34261131000144"; //cnpj ou cpf tDocAnt[x, 1] = "34261131000144"; //IE tDocAnt[x, 2] = "SP"; //UF tDocAnt[x, 3] = "EMPRESA DE TESTE " + String.Format("{0:D2}", x + 1); //xNome tDocAnt[x, 4] = String.Format("{0:D2}", x + 1); //tpDoc tDocAnt[x, 5] = "55"; //serie tDocAnt[x, 6] = "00001015" + String.Format("{0:D2}", x + 1); //nDoc tDocAnt[x, 7] = "2010-08-30"; //dEmi } asscshcte.asscshcte cte = new asscshcte.asscshcte(); string chCTe = cte.GeraCTe(tIde, tEmit, tRem, tExped, tReceb, tvPrest, tDest, tImp, tRodo, tInfCTeNorm, tRemInfNF, tInfQ, tDocAnt, false); txtLog.Text += "#RETORNO: " + chCTe + "\r\n\r\n"; Application.DoEvents(); string path = @"C:\Users\Usuario\Documents\cte-app\cte\arquivos\"; string str = string.Empty; } }