private void AddItem(string line) { string[] dados = line.Split('|'); envCFeCFeInfCFeDet det = new envCFeCFeInfCFeDet(); det.prod = new envCFeCFeInfCFeDetProd(); //det.nItem = (CFe.infCFe.det.Length + 1).ToString(); det.prod.cProd = dados[1]; det.prod.xProd = dados[2]; det.prod.CFOP = "1234"; //TODO Config det.prod.uCom = "UN"; det.prod.qCom = dados[3]; det.prod.vUnCom = dados[4]; det.prod.NCM = "00"; //TODO Parametrização det.prod.indRegra = "A"; det.imposto = new envCFeCFeInfCFeDetImposto(); envCFeCFeInfCFeDetImpostoICMS icms = new envCFeCFeInfCFeDetImpostoICMS(); if (!dados[6].Equals("FF")) { envCFeCFeInfCFeDetImpostoICMSICMS00 imp = new envCFeCFeInfCFeDetImpostoICMSICMS00(); imp.CST = "00"; imp.Orig = "0"; //TODO Config imp.pICMS = dados[6]; imp.vICMS = "0"; icms.Item = imp; det.imposto.Item = icms; envCFeCFeInfCFeDetImpostoPISPISAliq pis = new envCFeCFeInfCFeDetImpostoPISPISAliq(); pis.CST = "01"; pis.vBC = dados[6]; pis.pPIS = "0"; //TODO Config pis.vPIS = "0"; //Calcular det.imposto.PIS = new envCFeCFeInfCFeDetImpostoPIS(); det.imposto.PIS.Item = pis; } else if(dados[6].Equals("FF")) { envCFeCFeInfCFeDetImpostoICMSICMS40 imp = new envCFeCFeInfCFeDetImpostoICMSICMS40(); imp.CST = "60"; imp.Orig = "00"; icms.Item = imp; det.imposto.Item = icms; //envCFeCFeInfCFeDetImpostoPISPISNT pis = new envCFeCFeInfCFeDetImpostoPISPISNT(); //pis.CST = "4"; //det.imposto.PIS.Item = pis; } //TODO NN II det.nItem = (detList.Count + 1).ToString(); detList.Add(det); }
/// <summary> /// Grava valores de impostos nos produtos /// </summary> /// <typeparam name="T"></typeparam> /// <param name="childs"></param> /// <returns></returns> private T ImpostoProduto <T>(XmlNodeList childs) where T : new() { T result = new T(); foreach (XmlNode tag in childs) { switch (tag.Name) { #region ICMS00 case "ICMS00": envCFeCFeInfCFeDetImpostoICMSICMS00 ICMS00 = new envCFeCFeInfCFeDetImpostoICMSICMS00 { Orig = GetXML(tag.ChildNodes, "orig"), CST = GetXML(tag.ChildNodes, "CST"), pICMS = GetXML(tag.ChildNodes, "pICMS"), }; SetProperrty(result, "Item", ICMS00); break; #endregion ICMS00 #region ICMS40 case "ICMS40": case "ICMS41": case "ICMS50": case "ICMS60": envCFeCFeInfCFeDetImpostoICMSICMS40 ICMS40 = new envCFeCFeInfCFeDetImpostoICMSICMS40 { CST = GetXML(tag.ChildNodes, "CST"), Orig = GetXML(tag.ChildNodes, "orig"), }; SetProperrty(result, "Item", ICMS40); break; #endregion ICMS40 #region ICMSSN102 case "ICMSSN102": envCFeCFeInfCFeDetImpostoICMSICMSSN102 ICMSSN102 = new envCFeCFeInfCFeDetImpostoICMSICMSSN102 { CSOSN = GetXML(tag.ChildNodes, "CSOSN"), Orig = GetXML(tag.ChildNodes, "orig") }; SetProperrty(result, "Item", ICMSSN102); break; #endregion ICMSSN102 #region ICMSSN900 case "ICMSSN900": envCFeCFeInfCFeDetImpostoICMSICMSSN900 ICMSSN900 = new envCFeCFeInfCFeDetImpostoICMSICMSSN900 { CSOSN = GetXML(tag.ChildNodes, "CSOSN"), Orig = GetXML(tag.ChildNodes, "orig"), pICMS = GetXML(tag.ChildNodes, "pICMS") }; SetProperrty(result, "Item", ICMSSN900); break; #endregion ICMSSN900 #region PISAliq case "PISAliq": envCFeCFeInfCFeDetImpostoPISPISAliq PISAliq = new envCFeCFeInfCFeDetImpostoPISPISAliq { CST = GetXML(tag.ChildNodes, "CST"), pPIS = GetXML(tag.ChildNodes, "pPIS"), vBC = GetXML(tag.ChildNodes, "vBC"), }; SetProperrty(result, "Item", PISAliq); break; #endregion PISAliq #region PISNT case "PISNT": envCFeCFeInfCFeDetImpostoPISPISNT PISPISNT = new envCFeCFeInfCFeDetImpostoPISPISNT { CST = GetXML(tag.ChildNodes, "CST") }; SetProperrty(result, "Item", PISPISNT); break; #endregion PISNT #region PISOutr case "PISOutr": envCFeCFeInfCFeDetImpostoPISPISOutr PISOutr = new envCFeCFeInfCFeDetImpostoPISPISOutr { CST = GetXML(tag.ChildNodes, "CST"), Items = new string[] { GetXML(tag.ChildNodes, "vBC"), GetXML(tag.ChildNodes, "pPIS"), GetXML(tag.ChildNodes, "qBCProd"), GetXML(tag.ChildNodes, "vAliqProd"), }, ItemsElementName = new ItemsChoiceType[] { ItemsChoiceType.vBC, ItemsChoiceType.pPIS, ItemsChoiceType.qBCProd, ItemsChoiceType.vAliqProd }, vPIS = GetXMLZero(tag.ChildNodes, "vPIS") }; SetProperrty(result, "Item", PISOutr); break; #endregion PISOutr #region PISQtde case "PISQtde": envCFeCFeInfCFeDetImpostoPISPISQtde PISQtde = new envCFeCFeInfCFeDetImpostoPISPISQtde { CST = GetXML(tag.ChildNodes, "CST"), qBCProd = GetXML(tag.ChildNodes, "qBCProd"), vAliqProd = GetXML(tag.ChildNodes, "vAliqProd"), }; SetProperrty(result, "Item", PISQtde); break; #endregion PISQtde #region PISSN case "PISSN": envCFeCFeInfCFeDetImpostoPISPISSN PISSN = new envCFeCFeInfCFeDetImpostoPISPISSN { CST = GetXML(tag.ChildNodes, "CST") }; SetProperrty(result, "Item", PISSN); break; #endregion PISSN #region COFINSAliq case "COFINSAliq": envCFeCFeInfCFeDetImpostoCOFINSCOFINSAliq COFINSAliq = new envCFeCFeInfCFeDetImpostoCOFINSCOFINSAliq { CST = GetXML(tag.ChildNodes, "CST"), pCOFINS = GetXML(tag.ChildNodes, "pCOFINS"), vBC = GetXML(tag.ChildNodes, "vBC") }; SetProperrty(result, "Item", COFINSAliq); break; #endregion COFINSAliq #region COFINSNT case "COFINSNT": envCFeCFeInfCFeDetImpostoCOFINSCOFINSNT COFINSNT = new envCFeCFeInfCFeDetImpostoCOFINSCOFINSNT { CST = GetXML(tag.ChildNodes, "CST") }; SetProperrty(result, "Item", COFINSNT); break; #endregion COFINSNT #region COFINSOutr case "COFINSOutr": envCFeCFeInfCFeDetImpostoCOFINSCOFINSOutr COFINSOutr = new envCFeCFeInfCFeDetImpostoCOFINSCOFINSOutr { CST = GetXML(tag.ChildNodes, "CST"), Items = new string[] { GetXML(tag.ChildNodes, "vBC"), GetXML(tag.ChildNodes, "pCOFINS"), GetXML(tag.ChildNodes, "qBCProd"), GetXML(tag.ChildNodes, "vAliqProd"), }, ItemsElementName = new ItemsChoiceType2[] { ItemsChoiceType2.vBC, ItemsChoiceType2.pCOFINS, ItemsChoiceType2.qBCProd, ItemsChoiceType2.vAliqProd }, vCOFINS = GetXMLZero(tag.ChildNodes, "vCOFINS") }; SetProperrty(result, "Item", COFINSOutr); break; #endregion COFINSOutr #region COFINSNT case "COFINSQtde": envCFeCFeInfCFeDetImpostoCOFINSCOFINSQtde COFINSQtde = new envCFeCFeInfCFeDetImpostoCOFINSCOFINSQtde { CST = GetXML(tag.ChildNodes, "CST"), qBCProd = GetXML(tag.ChildNodes, "qBCProd"), vAliqProd = GetXML(tag.ChildNodes, "vAliqProd") }; SetProperrty(result, "Item", COFINSQtde); break; #endregion COFINSNT #region COFINSSN case "COFINSSN": envCFeCFeInfCFeDetImpostoCOFINSCOFINSSN COFINSSN = new envCFeCFeInfCFeDetImpostoCOFINSCOFINSSN { CST = GetXML(tag.ChildNodes, "CST") }; SetProperrty(result, "Item", COFINSSN); break; #endregion COFINSSN default: break; } } return(result); }