Beispiel #1
0
        public IActionResult Buscar([FromBody] Dictionary <string, string> dados)
        {
            bool operacao = false;

            string lote     = dados["lote"];
            string codigo   = dados["codigo"];
            string hospital = dados["hospital"];

            CamadaNegocio.IndustriaCamadaNegocio    icn = new CamadaNegocio.IndustriaCamadaNegocio();
            CamadaNegocio.DistribuidorCamadaNegocio dcn = new CamadaNegocio.DistribuidorCamadaNegocio();
            CamadaNegocio.CidadeCamadaNegocio       ccn = new CamadaNegocio.CidadeCamadaNegocio();

            CamadaNegocio.RastroCamadaNegocio rcn = new CamadaNegocio.RastroCamadaNegocio();

            DataTable dt = rcn.Buscar(lote, codigo, hospital);

            Models.Industria    indust = new Models.Industria();
            Models.Distribuidor dist   = new Models.Distribuidor();
            string cidadeIndust        = "";
            string estadoIndust        = "";
            string cidadeDist          = "";
            string estadoDist          = "";
            var    rastreioDestino     = new object();

            if (dt.Rows.Count > 0)
            {
                operacao = true;
                DataRow dr;

                dr = dt.Rows[0];

                indust       = icn.Obter(Convert.ToInt32(dr["ri_id_indust"]));
                dist         = dcn.Obter(Convert.ToInt32(dr["rd_id_dist"]));
                cidadeIndust = ccn.ObterNomeCidade(indust.Cidade);
                estadoIndust = ccn.ObterNomeEstado(indust.Estado);

                cidadeDist = ccn.ObterNomeCidade(dist.Cidade);
                estadoDist = ccn.ObterNomeEstado(dist.Estado);

                rastreioDestino = new
                {
                    descricao    = dr["descricao"],
                    ri_id_indust = dr["ri_id_indust"],
                    rd_id_dist   = dr["rd_id_dist"],
                    rdest_nome   = dr["rdest_nome"],
                    rdest_rua    = dr["rdest_rua"],
                    rdest_numero = dr["rdest_numero"],
                    rdest_bairro = dr["rdest_bairro"],
                    rdest_cidade = dr["rdest_cidade"],
                    rdest_estado = dr["rdest_estado"],
                    rdest_cep    = dr["rdest_cep"]
                };
            }

            return(Json(new
            {
                operacao,
                indust,
                cidadeIndust,
                estadoIndust,
                cidadeDist,
                estadoDist,
                dist,
                rastreioDestino
            }));
        }
Beispiel #2
0
        private (bool, string, int, string) ProcessImport(XmlDocument xmlDoc)
        {
            CamadaNegocio.ProdIndustCamadaNegocio picn = new CamadaNegocio.ProdIndustCamadaNegocio();
            List <Models.ProdutoIndust>           pi   = new List <Models.ProdutoIndust>();

            CamadaNegocio.NotaCamadaNegocio ncn = new CamadaNegocio.NotaCamadaNegocio();
            Models.NotaFiscal notamodelo        = new Models.NotaFiscal();

            CamadaNegocio.ItemNotaCamadaNegocio incn = new CamadaNegocio.ItemNotaCamadaNegocio();
            Models.ItemNota itemnota;

            //dados para rastreamento
            List <int>    rastroCod  = new List <int>();
            List <string> rastroLote = new List <string>();

            XmlNodeList xnList, xnList2;

            bool operacao, entrou;

            entrou = operacao = false;
            string msg      = "Produtos sem Cadastro - Códigos: ";
            string cnpjdist = "";

            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;

                pi.Add(picn.ObterProd(id_prod));
                if (pi[i] == null)
                {
                    entrou = true;
                    msg   += id_prod + ", ";
                }
            }
            msg  = msg.Remove(msg.Length - 2);
            msg += ".";

            //todos produtos cadastrados
            if (!entrou)
            {
                //dados nota fiscal
                notamodelo.Cod_indust = 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);

                operacao = ncn.Criar(notamodelo);

                if (operacao)
                {
                    xnList  = xmlDoc.GetElementsByTagName("prod");
                    xnList2 = xmlDoc.GetElementsByTagName("rastro");

                    for (int i = 0; i < xnList.Count; i++)
                    {
                        itemnota         = new Models.ItemNota();
                        itemnota.Id_nota = notamodelo.Id;
                        itemnota.Id_prod = pi[i].Id;
                        itemnota.Lote    = xnList2[i]["nLote"].InnerText;
                        string qtdeaux = xnList[i]["qTrib"].InnerText;
                        string 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(itemnota.Id_prod);
                        rastroLote.Add(itemnota.Lote);
                        operacao = incn.Criar(itemnota);
                    }
                }
                else
                {
                    return(operacao, "Problemas com os dados da Nota Fiscal!", notamodelo.Id, cnpjdist);
                }
            }
            if (!entrou)
            {
                xnList   = xmlDoc.GetElementsByTagName("dest");
                cnpjdist = xnList[0]["CNPJ"].InnerText;

                //salvar o rastreio
                CamadaNegocio.RastroCamadaNegocio rcn = new CamadaNegocio.RastroCamadaNegocio();
                rcn.Criar(rastroCod, rastroLote, cnpjdist, notamodelo.Cod_indust);

                return(operacao, "Dados Importados!", notamodelo.Id, cnpjdist);
            }
            else
            {
                return(false, msg, 0, cnpjdist);
            }
        }