예제 #1
0
        public IActionResult RetiraEstoque(int id_nota)
        {
            bool operacao = true;
            //int id_dist = Convert.ToInt32(HttpContext.User.Claims.ToList()[3].Value);

            List <Models.ItemNota> itens;

            CamadaNegocio.ItemNotaCamadaNegocio icn = new CamadaNegocio.ItemNotaCamadaNegocio();
            itens = icn.Pesquisa(id_nota);

            CamadaNegocio.EstoqueCamadaNegocio ecn = new CamadaNegocio.EstoqueCamadaNegocio();
            int    qtde, id_prod;
            string lote;

            for (int i = 0; i < itens.Count() && operacao; i++)
            {
                id_prod = itens[i].Id_prod;
                lote    = itens[i].Lote;
                qtde    = itens[i].Qtde;

                operacao = ecn.AtualizaEstoque(id_prod, lote, qtde);
            }

            return(Json(new
            {
                operacao
            }));
        }
        public IActionResult Criar([FromBody] Dictionary <string, string> dados, int id)
        {
            bool   operacao;
            string msg;

            Models.ProdutoDist proddist = new Models.ProdutoDist();
            proddist.Cod_ref       = dados["cod_ref"];
            proddist.Id_dist       = Convert.ToInt32(HttpContext.User.Claims.ToList()[3].Value);
            proddist.Cod_prod_dist = dados["codigo"];

            CamadaNegocio.ProdDistCamadaNegocio pcn = new CamadaNegocio.ProdDistCamadaNegocio();
            (operacao, msg) = pcn.Criar(proddist, dados["lote"], id);

            if (operacao && id == 0)
            {
                Models.Estoque estoque = new Models.Estoque();
                estoque.Id_dist = proddist.Id_dist;
                estoque.Id_prod = proddist.Id;
                estoque.Lote    = dados["lote"];
                estoque.Saldo   = Convert.ToInt32(dados["saldo"]);

                CamadaNegocio.EstoqueCamadaNegocio ecn = new CamadaNegocio.EstoqueCamadaNegocio();
                operacao = ecn.AlterarEstoque(estoque);
            }

            return(Json(new
            {
                operacao,
                msg
            }));
        }
예제 #3
0
        public IActionResult AlterarEstoque([FromBody] Dictionary <string, string> dados, int id_nota)
        {
            bool operacao = true;

            Models.Distribuidor dist;
            CamadaNegocio.DistribuidorCamadaNegocio dcn = new CamadaNegocio.DistribuidorCamadaNegocio();
            string cnpjdist = Convert.ToInt64(dados["cnpjdist"]).ToString(@"00\.000\.000\/0000\-00");

            dist = dcn.ObterCnpj(cnpjdist);

            List <Models.ItemNota> itens;

            CamadaNegocio.ItemNotaCamadaNegocio icn = new CamadaNegocio.ItemNotaCamadaNegocio();
            itens = icn.Pesquisa(id_nota);

            CamadaNegocio.EstoqueCamadaNegocio ecn = new CamadaNegocio.EstoqueCamadaNegocio();
            Models.Estoque estoque = new Models.Estoque();
            for (int i = 0; i < itens.Count() && operacao; i++)
            {
                estoque.Id_dist = dist.Id;
                estoque.Id_prod = Convert.ToInt32(itens[i].Id_prod);
                estoque.Lote    = itens[i].Lote;
                estoque.Saldo   = itens[i].Qtde;

                operacao = ecn.AlterarEstoque(estoque);
            }

            return(Json(new
            {
                operacao
            }));
        }
        public IActionResult Excluir(int id)
        {
            bool operacao;

            CamadaNegocio.EstoqueCamadaNegocio ecn = new CamadaNegocio.EstoqueCamadaNegocio();
            Models.Estoque estoque = ecn.Obter(id);
            operacao = ecn.Excluir(id);

            int qtd = ecn.ObterTodosEstoque(estoque.Id_prod);

            if (operacao && qtd == 0)
            {
                CamadaNegocio.ProdDistCamadaNegocio pdcn = new CamadaNegocio.ProdDistCamadaNegocio();
                pdcn.Excluir(estoque.Id_prod);
            }

            return(Json(new
            {
                operacao
            }));
        }
예제 #5
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);
            }
        }