Beispiel #1
0
        private void btnSalvar_Click(object sender, EventArgs e)
        {
            decimal totalIpi    = 0;
            decimal totalICms   = 0;
            decimal totalpis    = 0;
            decimal totalCofins = 0;

            string  dataEmissao            = mskDtVenda.Text.Trim();
            int     numeroNota             = Convert.ToInt32(txtNunNota.Text.Trim());
            string  modeloNota             = "55";
            string  serie                  = txtSerie.Text;
            string  finalidadeNota         = comboBox1.SelectedIndex.ToString();
            int     cadastro               = Convert.ToInt32(txtcodFornecedor.Text.Trim());
            string  cfop                   = txtCodCfod.Text.Trim();
            string  nfeReferenciada        = txtNFEreferenciada.Text.Trim();
            decimal subtotal               = Convert.ToDecimal(txtsomaTudo.Text.Trim());
            decimal desconto               = Convert.ToDecimal(txtSomaDesconto.Text.Trim());
            decimal totaldaNotacomdesconto = Convert.ToDecimal(txtCdesconto.Text.Trim());
            string  obsNota                = txtObs.Text.Trim();
            string  transportador;

            if (txtCodTransp.Text == string.Empty)
            {
                transportador = "0";
            }
            else
            {
                transportador = txtCodTransp.Text.Trim();
            }
            string vencimento = txtVenc.Text;

            string updateNota = "update nota set not_dtemissao = @not_dtemissao, not_numero = @not_numero, not_modelo = @not_modelo, not_serie = not_serie, not_finalidade = @not_finalidade,"
                                + "cadastro = @cadastro, cfo_codigo = @cfo_codigo, not_referenciada = @not_referenciada, not_subtotal = @not_subtotal, not_desconto = @not_desconto, not_nfetotal = @not_nfetotal,"
                                + "not_obs = @not_obs, cod_forncedor = @cad_fornecedor, not_vencimento = @not_vencimento, not_cancelada = @not_cancelada, not_inutilizada = @not_inutilizada, not_peso = @not_peso,"
                                + "not_volume = @not_volume, not_marca = @not_marca, not_icmsbase = @not_icmsbase, not_icmsvalor = @not_icmsvalor, not_icmspercentual = @not_icmspercentual,"
                                + "not_icmsstvalor = @not_icmsstvalor   where not_codigo = " + txtControle.Text;

            SqlConnection con = new SqlConnection();

            con.ConnectionString = utils.ConexaoDb();
            SqlCommand cmd = new SqlCommand(updateNota, con);

            cmd.CommandType = CommandType.Text;
            cmd.Parameters.Add("@not_dtemissao", SqlDbType.NVarChar).Value     = dataEmissao;
            cmd.Parameters.Add("@not_numero", SqlDbType.Int).Value             = numeroNota;
            cmd.Parameters.Add("@not_modelo", SqlDbType.NVarChar).Value        = modeloNota;
            cmd.Parameters.Add("@not_serie", SqlDbType.NVarChar).Value         = serie;
            cmd.Parameters.Add("@not_finalidade", SqlDbType.NVarChar).Value    = finalidadeNota;
            cmd.Parameters.Add("@cadastro", SqlDbType.Int).Value               = cadastro;
            cmd.Parameters.Add("@cfo_codigo", SqlDbType.Int).Value             = cfop;
            cmd.Parameters.Add("@not_referenciada", SqlDbType.NVarChar).Value  = nfeReferenciada;
            cmd.Parameters.Add("@not_subtotal", SqlDbType.Decimal).Value       = subtotal;
            cmd.Parameters.Add("@not_desconto", SqlDbType.Decimal).Value       = desconto;
            cmd.Parameters.Add("@not_nfetotal", SqlDbType.Decimal).Value       = totaldaNotacomdesconto;
            cmd.Parameters.Add("@not_obs", SqlDbType.NVarChar).Value           = obsNota;
            cmd.Parameters.Add("@cad_fornecedor", SqlDbType.Int).Value         = transportador;
            cmd.Parameters.Add("@not_vencimento", SqlDbType.NVarChar).Value    = vencimento;
            cmd.Parameters.Add("@not_cancelada", SqlDbType.Int).Value          = 0;
            cmd.Parameters.Add("@not_inutilizada", SqlDbType.Int).Value        = 0;
            cmd.Parameters.Add("@not_peso", SqlDbType.NVarChar).Value          = 1;
            cmd.Parameters.Add("@not_volume", SqlDbType.NVarChar).Value        = 1;
            cmd.Parameters.Add("@not_marca", SqlDbType.NVarChar).Value         = "marca";
            cmd.Parameters.Add("@not_icmsbase", SqlDbType.Decimal).Value       = 0;
            cmd.Parameters.Add("@not_icmsvalor", SqlDbType.Decimal).Value      = 0;
            cmd.Parameters.Add("@not_icmspercentual", SqlDbType.Decimal).Value = 0;
            cmd.Parameters.Add("@not_icmsstvalor", SqlDbType.Decimal).Value    = 0;
            con.Open();
            try
            {
                int i = cmd.ExecuteNonQuery();
                if (i > 0)
                {
                    u.messageboxSucesso();
                }
                var nfeContexto = new NFeContexto(false, NFeEletronica.Versao.NFeVersao.VERSAO_3_1_0, new GerenciadorDeCertificado());
                var nota        = new Nota(nfeContexto);
                nota.ide.cUF    = "41";
                nota.ide.natOp  = txtDescCfop.Text;
                nota.ide.indPag = "0";
                nota.ide.mod    = "55";
                nota.ide.serie  = txtSerie.Text;

                //string ultimoReg = "Select not_codigo From nota where not_codigo = (Select MAX(not_numero) From nota)";

                //SqlConnection con1 = new SqlConnection();
                //con.ConnectionString = utils.ConexaoDb();
                //SqlCommand cmd2 = new SqlCommand(ultimoReg, con1);

                //con.Open();
                //SqlDataReader dR = cmd2.ExecuteReader();

                //if (dR.Read())
                //{
                //    txtNunNota.Text = 1 + dR[0].ToString();
                //}
                //con.Close();
                DataContext db           = new DataContext();
                var         pessoa       = db.Clientes.Find(Convert.ToInt32(txtcodFornecedor.Text.Trim()));
                var         CidadeEstado = db.Cidades.Find(pessoa.CidadeCodigo);

                nota.ide.nNF      = txtNunNota.Text;
                nota.ide.dEmi     = mskDtVenda.Text;
                nota.ide.tpNF     = "1"; //normal contingencia
                nota.ide.cMunFG   = CidadeEstado.Ibge;
                nota.ide.tpImp    = "1";
                nota.ide.tpEmis   = "1";
                nota.ide.cDV      = "0";
                nota.ide.idDest   = "1";
                nota.ide.indFinal = "0";
                nota.ide.indPres  = "0";
                nota.ide.tpAmb    = "2";
                nota.ide.finNFe   = finalidadeNota;
                nota.ide.procEmi  = "3";// soft utilizado
                //
                DataContext.fil_codigo = Convert.ToInt32(textBox3.Text.Trim());
                var filial = db.Filiais.Find(DataContext.fil_codigo);
                nota.emit.CNPJ    = filial.CpfCnpj;
                nota.emit.xNome   = filial.Razao;
                nota.emit.xLgr    = filial.Endereco;
                nota.emit.nro     = filial.Numero;
                nota.emit.xBairro = filial.Bairro;

                var cidade = db.Cidades.Find(filial.CidadeCodigo);
                nota.emit.cMun  = cidade.Ibge;
                nota.emit.xMun  = cidade.Descricao;
                nota.emit.UF    = cidade.UF;
                nota.emit.CEP   = filial.Cep;
                nota.emit.cPais = "1058";
                nota.emit.xPais = "Brasil";
                nota.emit.fone  = filial.Telefone;
                nota.emit.IE    = filial.IE;
                nota.emit.CRT   = "1";

                //financeiro
                var dup = new NFeEletronica.NotaFiscal.DUP();
                dup.nDup  = "123";
                dup.dVenc = "2014-03-21";
                dup.vDup  = "23.33";
                nota.cobr.dup.Add(dup);

                //transportadora
                nota.transp.modFrete = "1";
                nota.transp.xNome    = "O Mesmo";
                nota.transp.IE       = "637322284114";
                nota.transp.xEnder   = "Rua ficticia, 123";
                nota.transp.xMun     = "São Lucas";
                nota.transp.UF       = "RO";
                //produstos
                foreach (DataGridViewRow row in dataGridView1.Rows)
                {
                    foreach (DataGridViewColumn column in dataGridView1.Columns)
                    {
                        var notaProduto = new DET();
                        notaProduto.cProd = row.Cells["Column1"].Value.ToString();
                        DataView dv             = new DataView(DataContext.CarregaProdutos());
                        Produto  produto        = new Produto();
                        var      produtoIncluir = db.Produtos.Find(Convert.ToInt32(notaProduto.cProd));

                        notaProduto.cEAN     = produtoIncluir.EAN;
                        notaProduto.xProd    = produtoIncluir.Descricao;
                        notaProduto.NCM      = produtoIncluir.NCM;
                        notaProduto.CFOP     = Convert.ToString(produtoIncluir.CFOP);
                        notaProduto.uCom     = produtoIncluir.UnidadeMedida;
                        notaProduto.qCom     = row.Cells["Column2"].Value.ToString();
                        notaProduto.vUnCom   = row.Cells["Column3"].Value.ToString();
                        notaProduto.vProd    = row.Cells["Column4"].Value.ToString();
                        notaProduto.cEANTrib = produtoIncluir.EAN;
                        notaProduto.uTrib    = produtoIncluir.UnidadeMedida;
                        notaProduto.qTrib    = notaProduto.qCom;
                        notaProduto.vUnTrib  = notaProduto.vUnCom;
                        notaProduto.indTot   = "1";

                        switch (produtoIncluir.CstICMS)
                        {
                        case "00":
                            notaProduto.icms = ICMS.ICMS00;
                            break;

                        case "10":
                            notaProduto.icms = ICMS.ICMS10;
                            break;

                        case "20":
                            notaProduto.icms = ICMS.ICMS20;
                            break;

                        case "30":
                            notaProduto.icms = ICMS.ICMS30;
                            break;

                        case "40":
                            notaProduto.icms = ICMS.ICMS40_50;
                            break;

                        case "41":
                            notaProduto.icms = ICMS.ICMS40_50;
                            break;

                        case "50":
                            notaProduto.icms = ICMS.ICMS40_50;
                            break;

                        case "51":
                            notaProduto.icms = ICMS.ICMS51;
                            break;

                        case "60":
                            notaProduto.icms = ICMS.ICMS60;
                            break;

                        case "70":
                            notaProduto.icms = ICMS.ICMS70;
                            break;

                        case "90":
                            notaProduto.icms = ICMS.ICMS90;
                            break;

                        case "101":
                            notaProduto.icms = ICMS.ICMS101;
                            break;

                        case "102":
                            notaProduto.icms = ICMS.ICMS102_400;
                            break;

                        case "103":
                            notaProduto.icms = ICMS.ICMS102_400;
                            break;

                        case "201":
                            notaProduto.icms = ICMS.ICMS201;
                            break;

                        case "202":
                            notaProduto.icms = ICMS.ICMS202;
                            break;

                        case "500":
                            notaProduto.icms = ICMS.ICMS500;
                            break;

                        case "900":
                            notaProduto.icms = ICMS.ICMS900;
                            break;

                        default:
                            notaProduto.icms = ICMS.ICMS00;
                            break;
                        }
                        notaProduto.icms_orig = Convert.ToString(produtoIncluir.OrigemDoProduto);
                        if (nota.emit.CRT == "1")
                        {
                            notaProduto.icms_CSOSN = produtoIncluir.CstICMS;
                        }
                        else
                        {
                            notaProduto.icms_CST = produtoIncluir.CstICMS;
                        }

                        notaProduto.ipi      = IPI.IPI00_49_50_99;
                        notaProduto.ipi_CST  = "99";
                        notaProduto.ipi_vIPI = "0";

                        notaProduto.pis      = PIS.PIS01_02;
                        notaProduto.pis_CST  = "01";
                        notaProduto.pis_vBC  = "0";
                        notaProduto.pis_pPIS = "0";
                        notaProduto.pis_vPIS = "0";

                        notaProduto.cofins         = COFINS.CST01_02;
                        notaProduto.cofins_CST     = "01";
                        notaProduto.cofins_vBC     = "0";
                        notaProduto.cofins_pCOFINS = "0";
                        notaProduto.cofins_vCOFINS = "0";

                        nota.AddDet(notaProduto);
                    }
                }
                //fim de um produto
                if (nota.emit.CRT == "1")
                {
                    nota.total.vBC = "0.00";
                }
                else
                {
                    nota.total.vBC = Convert.ToString(totaldaNotacomdesconto);
                }

                nota.total.vICMS      = "0.00";
                nota.total.vICMSDeson = "0.00";
                nota.total.vBCST      = "0.00";
                nota.total.vST        = "0.00";
                nota.total.vProd      = "1.00";
                nota.total.vFrete     = "0.00";
                nota.total.vSeg       = "0.00";
                nota.total.vDesc      = "0.00";
                nota.total.vII        = "0.00";
                nota.total.vIPI       = "0.00";
                nota.total.vPIS       = "0.00";
                nota.total.vCOFINS    = "0.00";
                nota.total.vOutro     = "0.00";
                nota.total.vNF        = "1.00";
                nota.total.vTotTrib   = "0.00";

                nota.SalvarNota(@"C:\temp\teste-nota.xml");
            }
            catch (Exception ex)
            {
                u.messageboxErro(ex.ToString());
            }
            finally
            {
                con.Close();
            }
            Unovo();
        }