//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;
}
}