예제 #1
0
        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);
        }
예제 #2
0
        /// <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);
        }