public bool Criar_Destino(List <string> rastroCod, List <string> rastroLote, Models.Destino destino) { string sql; for (int i = 0; i < rastroCod.Count; i++) { sql = @"select rd_id from rastro_industria as ri inner join rastro_distribuidor as rd ON ri.ri_id = rd.rd_id_ri inner join produto_distribuidor as pd ON pd.cod_prod_dist = '" + rastroCod[i] + "' and ri.ri_lote = '" + rastroLote[i] + "'"; DataTable dt = _bd.ExecutarSelect(sql); if (dt.Rows.Count > 0) { int rd_id = Convert.ToInt32(dt.Rows[0][0]); sql = @"insert into rastro_destino(rdest_rd_id,rdest_nome,rdest_rua,rdest_numero,rdest_bairro,rdest_cidade,rdest_estado,rdest_cep) values(" + rd_id + ",'" + destino.Nome + "','" + destino.Rua + "'," + destino.Numero + ",'" + destino.Bairro + "','" + destino.Cidade + "','" + destino.Estado + "','" + destino.Cep + "')"; _bd.ExecutarNonQuery(sql); } } return(true); }
private (bool, string, int, string) ProcessImport(XmlDocument xmlDoc) { CamadaNegocio.ProdDistCamadaNegocio pdcn = new CamadaNegocio.ProdDistCamadaNegocio(); List <Models.ProdutoDist> pd = new List <Models.ProdutoDist>(); CamadaNegocio.NotaCamadaNegocio ncn = new CamadaNegocio.NotaCamadaNegocio(); Models.NotaFiscal notamodelo = new Models.NotaFiscal(); CamadaNegocio.ItemNotaCamadaNegocio incn = new CamadaNegocio.ItemNotaCamadaNegocio(); Models.ItemNota itemnota; CamadaNegocio.EstoqueCamadaNegocio ecn = new CamadaNegocio.EstoqueCamadaNegocio(); //dados para rastreamento List <string> rastroCod = new List <string>(); List <string> rastroLote = new List <string>(); List <string> codProd = new List <string>(); XmlNodeList xnList, xnList2; bool operacao, entrou, nosaldo; entrou = operacao = nosaldo = false; string msg = "Produtos sem Cadastro - Códigos: "; string msg2 = "Tais Itens Não possui Saldo Suficiente - Códigos: "; string qtdeaux, qtde; xnList = xmlDoc.GetElementsByTagName("prod"); notamodelo.Tipo = HttpContext.User.Claims.ToList()[1].Value; for (int i = 0; i < xnList.Count; i++) { string id_prod = xnList[i]["cProd"].InnerText; codProd.Add(id_prod); pd.Add(pdcn.ObterProd(id_prod)); if (pd[i] == null) { entrou = true; msg += id_prod + ", "; } //verifica estoque junto //verifica se há quantidade qtdeaux = xnList[i]["qTrib"].InnerText; qtde = ""; for (int j = 0; qtdeaux[j] != '.'; j++) { qtde += qtdeaux[j]; } operacao = ecn.VerificaEstoque(id_prod, Convert.ToInt32(qtde)); if (!operacao) { nosaldo = true; msg2 += id_prod + ", "; } } msg = msg.Remove(msg.Length - 2); msg += "."; msg2 = msg2.Remove(msg2.Length - 2); msg2 += "."; string dadosadd = ""; //todos produtos cadastrados e com estoques disponiveis if (!entrou && !nosaldo) { //dados nota fiscal notamodelo.Cod_dist = Convert.ToInt32(HttpContext.User.Claims.ToList()[3].Value); xnList = xmlDoc.GetElementsByTagName("infProt"); notamodelo.Chave = xnList[0]["chNFe"].InnerText; xnList = xmlDoc.GetElementsByTagName("ide"); notamodelo.Serie = Convert.ToInt32(xnList[0]["serie"].InnerText); notamodelo.Numero = Convert.ToInt32(xnList[0]["nNF"].InnerText); notamodelo.Data = Convert.ToDateTime(xnList[0]["dhEmi"].InnerText); xnList = xmlDoc.GetElementsByTagName("fat"); notamodelo.Valor_nf = GetDouble(xnList[0]["vLiq"].InnerText, 0d); //dados adicionais xnList = xmlDoc.GetElementsByTagName("infCpl"); dadosadd = xnList[0].InnerText; string[] infoadd = dadosadd.Split(","); if (infoadd.Length > 0) { string[] paciente = infoadd[0].Split(":"); if (paciente.Length > 0) { notamodelo.Paciente = paciente[1].Trim(); } if (infoadd.Length >= 2) { string[] medico = infoadd[1].Split(":"); if (medico.Length > 0) { notamodelo.Medico = medico[1].Trim(); } if (infoadd.Length >= 3) { string[] convenio = infoadd[2].Split(":"); if (convenio.Length > 0) { notamodelo.Convenio = convenio[1].Trim(); } if (infoadd.Length >= 4) { string[] data_cirurgia = infoadd[4].Split(":"); if (data_cirurgia.Length > 0) { notamodelo.Data_cirurgia = DateTime.ParseExact(data_cirurgia[1].Trim(), "dd/MM/yyyy", null); } if (infoadd.Length >= 5) { string[] hospital = infoadd[5].Split(":"); if (hospital.Length == 0) { notamodelo.Hospital = ""; } else { notamodelo.Hospital = hospital[1].Trim(); } } } } } } operacao = ncn.Criar(notamodelo); if (operacao) { xnList = xmlDoc.GetElementsByTagName("prod"); xnList2 = xmlDoc.GetElementsByTagName("infAdProd"); for (int i = 0; i < xnList.Count; i++) { itemnota = new Models.ItemNota(); itemnota.Id_nota = notamodelo.Id; itemnota.Id_prod = pd[i].Id; //lote string dadosinfo = xnList2[i].InnerText; string[] dados = dadosinfo.Split(";"); string[] dados2 = dados[1].Split(":"); string lote = dados2[1].Split(" ")[1]; itemnota.Lote = lote; qtdeaux = xnList[i]["qTrib"].InnerText; qtde = ""; for (int j = 0; qtdeaux[j] != '.'; j++) { qtde += qtdeaux[j]; } itemnota.Qtde = Convert.ToInt32(qtde); itemnota.Valor_unit = GetDouble(xnList[i]["vUnTrib"].InnerText, 0d); rastroCod.Add(codProd[i]); rastroLote.Add(itemnota.Lote); operacao = incn.Criar(itemnota); } } else { return(operacao, "Problemas com os dados da Nota Fiscal!", notamodelo.Id, "Erro"); } } if (entrou) { return(false, msg, 0, "Erro"); } else if (nosaldo) { return(false, msg2, notamodelo.Id, dadosadd); } else { xnList = xmlDoc.GetElementsByTagName("dest"); Models.Destino destino = new Models.Destino(); destino.Nome = xnList[0]["xNome"].InnerText; xnList = xmlDoc.GetElementsByTagName("enderDest"); destino.Rua = xnList[0]["xLgr"].InnerText; destino.Numero = Convert.ToInt32(xnList[0]["nro"].InnerText); destino.Bairro = xnList[0]["xBairro"].InnerText; destino.Cidade = xnList[0]["xMun"].InnerText; destino.Estado = xnList[0]["UF"].InnerText; destino.Cep = xnList[0]["CEP"].InnerText; destino.salvar(rastroCod, rastroLote); return(operacao, "Dados Importados!", notamodelo.Id, dadosadd); } }