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