Beispiel #1
0
        // GET api/products/{id}
        public Artigo GetProduct(string id)
        {
            List <double> precos    = new List <double>();
            double        sumPrecos = 0;

            Lib_Primavera.Model.Artigo artigo = Lib_Primavera.PriIntegration.GetArtigo(id);
            if (artigo == null)
            {
                return(null);
                //throw new HttpResponseException(
                // Request.CreateResponse(HttpStatusCode.NotFound));
            }
            else
            {
                artigo = Lib_Primavera.PriIntegration.GetPrecoArtigo(artigo);
                precos = Lib_Primavera.PriIntegration.GetTodosPrecosArtigo(artigo);
                foreach (double preco in precos)
                {
                    sumPrecos += preco;
                }
                artigo.PrecoMedio = sumPrecos / precos.Count;

                return(artigo);
            }
        }
Beispiel #2
0
        public Lib_Primavera.Model.Artigo Get(string id)
        {
            Lib_Primavera.Model.Artigo artigo = Lib_Primavera.PriIntegration.GetArtigo(id);

            if (artigo == null)
            {
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
            }

            return(artigo);
        }
Beispiel #3
0
 public Artigo GetProductDetails(string productID)
 {
     Lib_Primavera.Model.Artigo product = Lib_Primavera.PriIntegration.GetArtigo(productID);
     if (product == null)
     {
         throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
     }
     else
     {
         return(product);
     }
 }
Beispiel #4
0
        public ActionResult Artigo(string id)
        {
            Lib_Primavera.Model.Artigo         artigo       = Lib_Primavera.PriIntegration.GetArtigo(id);
            List <Lib_Primavera.Model.Artigo>  recomendados = Lib_Primavera.PriIntegration.ListaTop4ArtigosCategoria(artigo.Categoria, artigo.CodArtigo);
            List <Lib_Primavera.Model.Armazem> armazens     = Lib_Primavera.PriIntegration.ListaArmazensProduto(id);

            ViewBag.artigo       = artigo;
            ViewBag.recomendados = recomendados;
            ViewBag.armazens     = armazens;
            ViewBag.categoria    = Lib_Primavera.PriIntegration.GetCategoria(artigo.Categoria);
            return(View());
        }
Beispiel #5
0
 // GET api/artigo/5
 public Artigo Get(string id)
 {
     Lib_Primavera.Model.Artigo artigo = Lib_Primavera.Comercial.GetArtigo(id);
     if (artigo == null)
     {
         throw new HttpResponseException(
                   Request.CreateResponse(HttpStatusCode.NotFound));
     }
     else
     {
         return(artigo);
     }
 }
 // GET api/artigo/5
 public Artigo Get(string id)
 {
     //Lib_Primavera.Model.Artigo artigo = Lib_Primavera.PriIntegration.GetArtigo(id);
     Lib_Primavera.Model.Artigo artigo = DashboardIntegration.Parser.StagingAPI.GetArtigo(id);
     if (artigo == null)
     {
         throw new HttpResponseException(
                   Request.CreateResponse(HttpStatusCode.NotFound));
     }
     else
     {
         return(artigo);
     }
 }
Beispiel #7
0
 // GET api/artigos/5
 public Artigo Get(string id)
 {
     Lib_Primavera.Model.Artigo artigo = Lib_Primavera.PriIntegration.GetArtigo(id);
     if (artigo == null)
     {
         throw new HttpResponseException(
                   Request.CreateResponse(HttpStatusCode.NotFound));
     }
     else
     {
         HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", LocalhostIP.localhostIP());
         return(artigo);
     }
 }
 public Artigo Get_Info(string id)
 {
     id = id.Replace("_", ".");
     Lib_Primavera.Model.Artigo artigo = Lib_Primavera.PriIntegration.GetArtigo(id);
     if (artigo == null)
     {
         throw new HttpResponseException(
                   Request.CreateResponse(HttpStatusCode.NotFound));
     }
     else
     {
         return(artigo);
     }
 }
        // POST api/artigo/5
        public Artigo Post(string id, [FromBody] Lib_Primavera.Model.Login login)
        {
            //Lib_Primavera.Model.Artigo artigo = Lib_Primavera.PriIntegration.GetArtigo(id, login.company, login.user, login.password);

            Lib_Primavera.Model.Artigo artigo = DashboardIntegration.Parser.StagingAPI.GetArtigo(id);
            if (artigo == null)
            {
                throw new HttpResponseException(
                          Request.CreateResponse(HttpStatusCode.NotFound));
            }
            else
            {
                return(artigo);
            }
        }
Beispiel #10
0
        public Artigo Get(string id)
        {
            id = id.Replace("!", ".");

            Lib_Primavera.Model.Artigo artigo = Lib_Primavera.Artigos.GetArtigo(id);
            if (artigo == null)
            {
                //throw new HttpResponseException(
                //        Request.CreateResponse(HttpStatusCode.NotFound));
                return(null);
            }
            else
            {
                return(artigo);
            }
        }
Beispiel #11
0
        // POST api/artigos
        public HttpResponseMessage Post(Lib_Primavera.Model.Artigo artigo)
        {
            Lib_Primavera.Model.RespostaErro erro = Lib_Primavera.PriIntegration.InsereArtigoObj(artigo);

            if (erro.Erro == 0)
            {
                var response = Request.CreateResponse(
                    HttpStatusCode.Created, erro.Descricao);
                return(response);
            }

            else
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, erro.Descricao));
            }
        }
Beispiel #12
0
        public HttpResponseMessage Put(string id, Lib_Primavera.Model.Artigo artigo)
        {
            Lib_Primavera.Model.RespostaErro erro = new Lib_Primavera.Model.RespostaErro();

            try
            {
                erro = Lib_Primavera.PriIntegration.UpdArtigo(artigo);
                if (erro.Erro == 0)
                {
                    return(Request.CreateResponse(HttpStatusCode.OK, erro.Descricao));
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.NotFound, erro.Descricao));
                }
            }

            catch (Exception exc)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, erro.Descricao));
            }
        }
Beispiel #13
0
        public JsonResult AdicionaArtigoCarrinho([FromBody] Lib_Primavera.Model.Artigo artigo)
        {
            try
            {
                int    clienteId    = Int32.Parse(Request.Cookies["UserId"].Value);
                String productId    = artigo.CodArtigo;
                String productName  = artigo.DescArtigo;
                float  productPrice = (float)artigo.Preco;
                int    quantity     = artigo.Quantidade;

                var db  = new FirstREST.Models.StoreEntities();
                var art = new FirstREST.Models.Cart {
                    ClientId = clienteId, ProductId = productId, ProductName = productName, ProductPrice = productPrice, Quantity = quantity
                };
                db.Carts.Add(art);
                db.SaveChanges();
                return(Json(new { success = true }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                var msg = e.StackTrace;
                return(Json(new { success = false, msg = e.StackTrace }, JsonRequestBehavior.AllowGet));
            }
        }
Beispiel #14
0
        public ActionResult Index(String op, String op_dois)
        {
            if (op == "Categoria")
            {
                if (op_dois == null)
                {
                    List <Lib_Primavera.Model.Artigo> artigos = Lib_Primavera.PriIntegration.ListaArtigos();

                    artigos.OrderByDescending(p => p.ID);

                    IEnumerable <Lib_Primavera.Model.Artigo> temp = artigos.Take(3);

                    ViewBag.top = temp;


                    return(View("/Views/Home/Index.cshtml"));
                }

                else
                {
                    List <Lib_Primavera.Model.Artigo> artigos  = Lib_Primavera.PriIntegration.ListaArtigos();
                    List <Lib_Primavera.Model.Artigo> artigos2 = new List <Lib_Primavera.Model.Artigo>();

                    foreach (var ar in artigos)
                    {
                        if (ar.SubFamilia == op_dois)
                        {
                            artigos2.Add(ar);
                        }
                    }

                    //if(artigos2.Count() == 0)
                    //    return View("/Views/Home/Index.cshtml");

                    //else{
                    ViewBag.cat     = op_dois;
                    ViewBag.artigos = artigos2;
                    return(View("/Views/ArtigoPage/produtos.cshtml"));

                    //}
                }
            }


            else if (op == "Artigos")
            {
                if (op_dois == null)
                {
                    IEnumerable <Lib_Primavera.Model.Artigo> artigos = Lib_Primavera.PriIntegration.ListaArtigos();


                    ViewBag.artigos = artigos;

                    return(View("/Views/ArtigoPage/produtos.cshtml"));
                }

                else
                {
                    Lib_Primavera.Model.Artigo artigo = Lib_Primavera.PriIntegration.GetArtigo(op_dois);

                    ViewBag.id        = artigo.ID;
                    ViewBag.model     = artigo.Marca;
                    ViewBag.preco     = Math.Round(double.Parse(artigo.Preço) * (1 + 23.0 / 100.0), 2);
                    ViewBag.descricao = artigo.Descricao;
                    ViewBag.stoke     = artigo.SubFamilia;
                    ViewBag.imagem    = artigo.CDU_Imagem;
                    ViewBag.stk       = artigo.STKActual;
                    ViewBag.Nome      = artigo.Nome;

                    var index  = 0;
                    var index2 = 0;

                    List <Lib_Primavera.Model.Artigo> listArts = Lib_Primavera.PriIntegration.GetArtigosByCategoria(artigo.SubFamilia);

                    foreach (var v in listArts)
                    {
                        if (v.ID.Equals(artigo.ID))
                        {
                            index2 = index;
                        }
                        index++;
                    }

                    listArts.RemoveAt(index2);
                    ViewBag.artigos = listArts.Take(3);


                    //fazer os recomendados , que acho que nao esta a dar a outra funçao.

                    List <Lib_Primavera.Model.TDU_Comentario> listComs = Lib_Primavera.PriIntegration.ListaComentarios(artigo.ID);

                    ViewBag.comentarios = listComs;

                    //fazer os recomendados , que acho que nao esta a dar a outra funçao.

                    //Lib_Primavera.Model.Artigo artigos = Lib_Primavera.PriIntegration.GetArtigoByCategoria(artigo.SubFamilia);

                    return(View("/Views/ArtigoPage/Index.cshtml"));
                }
            }
            else if (op == "Carrinho")
            {
                if (Session["username"] == null)
                {
                    List <Lib_Primavera.Model.Artigo> artigos = Lib_Primavera.PriIntegration.ListaArtigos();

                    artigos.OrderByDescending(p => p.ID);

                    IEnumerable <Lib_Primavera.Model.Artigo> temp = artigos.Take(3);

                    ViewBag.top = temp;
                    return(View("/Views/Home/Index.cshtml"));
                }
                else
                {
                    string session = Session["username"].ToString();

                    Lib_Primavera.Model.Carrinho cart = Lib_Primavera.PriIntegration.GetCarrinhoUser(session);

                    ViewBag.idCar    = cart.ID;
                    ViewBag.owner    = cart.ID_Cliente;
                    ViewBag.Nome     = Session["name"];
                    ViewBag.produtos = cart.ID_Produtos;

                    List <Lib_Primavera.Model.Armazem> listArms = Lib_Primavera.PriIntegration.ListaArmazens();

                    ViewBag.armazens = listArms;


                    return(View("/Views/ArtigoPage/carrinho.cshtml"));
                }
            }
            else if (op == "Encomendas")
            {
                if (Session["username"] == null)
                {
                    List <Lib_Primavera.Model.Artigo> artigos = Lib_Primavera.PriIntegration.ListaArtigos();

                    artigos.OrderByDescending(p => p.ID);

                    IEnumerable <Lib_Primavera.Model.Artigo> temp = artigos.Take(3);

                    ViewBag.top = temp;
                    return(View("/Views/Home/Index.cshtml"));
                }
                else
                {
                    string session = Session["username"].ToString();

                    List <Lib_Primavera.Model.DocVenda> encomendas = Lib_Primavera.PriIntegration.GET_Pedidos(session);

                    ViewBag.Nome       = Session["name"];
                    ViewBag.Encomendas = encomendas;


                    return(View("/Views/ArtigoPage/Encomendas.cshtml"));
                }
            }

            else if (op == "Wishlist")
            {
                if (Session["username"] == null)
                {
                    List <Lib_Primavera.Model.Artigo> artigos = Lib_Primavera.PriIntegration.ListaArtigos();

                    artigos.OrderByDescending(p => p.ID);

                    IEnumerable <Lib_Primavera.Model.Artigo> temp = artigos.Take(3);

                    ViewBag.top = temp;
                    return(View("/Views/Home/Index.cshtml"));
                }
                else
                {
                    string session = Session["username"].ToString();

                    Lib_Primavera.Model.Wishlist wishlist = Lib_Primavera.PriIntegration.GetWishlistUser(Session["username"].ToString());

                    ViewBag.Nome     = Session["name"];
                    ViewBag.Wishlist = wishlist.ID_Produtos;


                    return(View("/Views/ArtigoPage/Wishlist.cshtml"));
                }
            }



            else if (op == "Login")
            {
                return(View("/Views/Home/Login.cshtml"));
            }

            else if (op == "Register")
            {
                return(View("/Views/Home/Register.cshtml"));
            }

            else if (op == "Contacto")
            {
                return(View("/Views/Home/Contacto.cshtml"));
            }

            else if (op == null && op_dois == null)
            {
                List <Lib_Primavera.Model.Artigo> artigos = Lib_Primavera.PriIntegration.ListaArtigos();

                artigos.OrderByDescending(p => p.ID);
                artigos.Reverse();

                IEnumerable <Lib_Primavera.Model.Artigo> temp = artigos.Take(3);

                ViewBag.top = temp;


                return(View("/Views/Home/Index.cshtml"));
            }

            else if (op == "Logout")
            {
                Session.Clear();
                List <Lib_Primavera.Model.Artigo> artigos = Lib_Primavera.PriIntegration.ListaArtigos();

                artigos.OrderByDescending(p => p.ID);

                IEnumerable <Lib_Primavera.Model.Artigo> temp = artigos.Take(3);

                ViewBag.top = temp;
                return(View("/Views/Home/Index.cshtml"));
            }

            else
            {
                return(null);
            }
        }
Beispiel #15
0
        public static void Parse(string path, DashboardIntegration.Lib_Primavera.Model.Login creds)
        {
            StkArtigo = new Dictionary <String, Double>();
            /*Carregar Artigos do Primavera*/
            List <Lib_Primavera.Model.Artigo> arts;

            arts = Lib_Primavera.PriIntegration.ListaArtigos();
            Lib_Primavera.Model.Artigo aux = Lib_Primavera.PriIntegration.GetArtigo("Especial");
            foreach (Lib_Primavera.Model.Artigo a in arts)
            {
                StkArtigo[a.CodArtigo] = a.STKAtual;
            }

            sc.Close();
            sc.ConnectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=" + System.AppDomain.CurrentDomain.BaseDirectory + "App_Data\\Staging.mdf;Integrated Security=True";
            sc.Open();
            /*Código para limpar a BD para facilitar debugging*/
            //SqlCommand clean = new SqlCommand("DELETE FROM LinePurchases; Delete FROM EncomendasFornecedor;Delete FROM Purchases; DELETE FROM Supplier; DELETE FROM Line; DELETE FROM Invoice; DELETE FROM Cliente;DELETE FROM Supplier;DELETE FROM BillingAddress; DELETE FROM Artigo ; DELETE FROM Venda; DELETE FROM SalesInvoices; DELETE FROM Empresa", sc);
            //clean.ExecuteScalar();

            XmlDocument xmlDoc = new XmlDocument();

            try
            {
                xmlDoc.Load(path);
            }
            catch (Exception)
            {
                /** TODO */
                return;
            }

            XmlNamespaceManager xmlnsManager = new XmlNamespaceManager(xmlDoc.NameTable);

            //xmlnsManager.AddNamespace("ns", "urn:OECD:StandardAuditFile-Tax:PT_1.04_01");
            xmlnsManager.AddNamespace("ns", "urn:OECD:StandardAuditFile-Tax:PT_1.01_01");

            XmlNode root = xmlDoc.DocumentElement;

            XmlNode header = xmlDoc.SelectSingleNode("/ns:AuditFile/ns:Header", xmlnsManager);

            EmpresaId          = creds.company;
            StagingAPI.empresa = EmpresaId;
            string  Nome       = header["CompanyName"].InnerText;
            string  NumContrib = header["TaxRegistrationNumber"].InnerText;
            XmlNode moradaNode = header.SelectSingleNode("descendant::ns:CompanyAddress", xmlnsManager);
            string  Morada     = moradaNode["StreetName"].InnerText;
            string  Local      = moradaNode["City"].InnerText;
            string  Cp         = moradaNode["PostalCode"].InnerText;


            string empresaQuery = "IF (SELECT COUNT(Id) FROM Empresa WHERE NumContrib='" + NumContrib + "') > 0 ";

            empresaQuery += "UPDATE Empresa SET Nome='" + Nome + "', Morada='" + Morada + "', Local='" + Local + "', Cp='" + Cp + "' WHERE NumContrib='" + NumContrib + "';";
            empresaQuery += "ELSE ";
            empresaQuery += "INSERT INTO Empresa VALUES('" + EmpresaId + "','" + Nome + "', '" + NumContrib + "', '" + Morada + "', '" + Local + "', '" + Cp + "')";

            SqlCommand empresaCom = new SqlCommand(empresaQuery, sc);

            empresaCom.ExecuteScalar();

            //Carregar fornecedores

            if (DashboardIntegration.Lib_Primavera.PriEngine.InitializeCompany(creds.company, creds.user, creds.password) == true)
            {
                List <Lib_Primavera.Model.Fornecedor> listFornecedores = Lib_Primavera.PriIntegration.ListaFornecedores();
                foreach (Lib_Primavera.Model.Fornecedor f in listFornecedores)
                {
                    string query = "IF (SELECT COUNT(CodFornecedor) FROM Supplier WHERE CodFornecedor='" + f.CodFornecedor + "' AND EmpresaId='" + EmpresaId + "') > 0 ";
                    query += "UPDATE Supplier SET Nome='" + sanitize(f.Nome) + "', Morada='" + sanitize(f.Morada) + "',Local='" + sanitize(f.Local) + "',Cp='" + f.Cp + "',Tel='" + f.Tel + "',Divida=" + f.Divida.ToString().Replace(",", ".") + ",NumContrib='" + f.NumContrib + "',ModoPag='" + f.ModoPag + "',EnderecoWeb='" + f.EnderecoWeb + "',EncomendasPendentes=" + f.EncomendasPendentes.ToString().Replace(",", ".") + " WHERE CodFornecedor='" + f.CodFornecedor + "' AND EmpresaId='" + EmpresaId + "';";
                    query += "ELSE ";
                    query += "INSERT INTO Supplier VALUES('" + f.CodFornecedor + "', '" + sanitize(f.Nome) + "', '" + sanitize(f.Morada) + "','" + sanitize(f.Local) + "','" + f.Cp + "','" + f.Tel + "'," + f.Divida.ToString().Replace(",", ".") + ",'" + f.NumContrib + "','" + f.ModoPag + "','" + f.EnderecoWeb + "'," + f.EncomendasPendentes.ToString().Replace(",", ".") + ",'" + EmpresaId + "')";
                    SqlCommand com = new SqlCommand(query, sc);
                    com.ExecuteScalar();
                }
                //Carregar documentos de compra
                List <Lib_Primavera.Model.DocCompra> compras = Lib_Primavera.PriIntegration.VGR_List();
                foreach (Lib_Primavera.Model.DocCompra c in compras)
                {
                    string parsedDate = c.Data.ToString("yyyy-MM-dd hh:mm:ss");
                    double absMerc    = Math.Abs(c.TotalMerc);
                    string query      = "IF (SELECT COUNT(Id) FROM Purchases WHERE Id='" + c.id + "' AND EmpresaId='" + EmpresaId + "') > 0 ";
                    query += "UPDATE Purchases SET NumDocExterno=" + c.NumDocExterno + ", Entidade='" + sanitize(c.Entidade) + "',NumDoc=" + c.NumDoc + ",Data='" + parsedDate + "',TotalMerc=" + absMerc.ToString().Replace(",", ".") + ",Serie='" + c.Serie + "' WHERE Id='" + c.id + "' AND EmpresaId='" + EmpresaId + "'; ";
                    query += "ELSE ";
                    query += "INSERT INTO Purchases VALUES('" + c.id + "', " + c.NumDocExterno + ", '" + sanitize(c.Entidade) + "'," + c.NumDoc + ",'" + parsedDate + "'," + absMerc.ToString().Replace(",", ".") + ",'" + c.Serie + "','" + EmpresaId + "')";
                    SqlCommand com = new SqlCommand(query, sc);
                    com.ExecuteScalar();
                    //Carregar linhas do doc
                    foreach (Lib_Primavera.Model.LinhaDocCompra l in c.LinhasDoc)
                    {
                        string queryl = "IF (SELECT COUNT(Id) FROM LinePurchases WHERE Id='" + l.Id + "' AND EmpresaId='" + EmpresaId + "') > 0 ";
                        queryl += "UPDATE LinePurchases SET IdCabecDoc='" + l.IdCabecDoc + "', CodArtigo='" + l.CodArtigo + "',Descricao='" + sanitize(l.DescArtigo) + "',Quantidade=" + l.Quantidade + ",Unidade='" + l.Unidade + "',Desconto1=" + l.Desconto + ",PrecUnit=" + l.PrecoUnitario.ToString().Replace(",", ".") + ",TotalLiquido=" + l.TotalILiquido.ToString().Replace(",", ".") + ",PrecoLiquido=" + l.TotalLiquido.ToString().Replace(",", ".") + ",Armazem='" + l.Armazem + "',Lote='" + l.Lote + "',NumLinha=" + l.NumLinha + " WHERE Id='" + l.Id + "' AND EmpresaId='" + EmpresaId + "';";
                        queryl += "ELSE ";
                        queryl += "INSERT INTO LinePurchases VALUES('" + l.Id + "', '" + l.IdCabecDoc + "', '" + l.CodArtigo + "','" + sanitize(l.DescArtigo) + "'," + l.Quantidade + ",'" + l.Unidade + "'," + l.Desconto + "," + l.PrecoUnitario.ToString().Replace(",", ".") + "," + l.TotalILiquido.ToString().Replace(",", ".") + "," + l.TotalLiquido.ToString().Replace(",", ".") + ",'" + l.Armazem + "','" + l.Lote + "','" + EmpresaId + "'," + l.NumLinha + ");";
                        SqlCommand coml = new SqlCommand(queryl, sc);
                        coml.ExecuteScalar();
                    }
                }
                //Carregar encomendas feitas entregues
                List <Lib_Primavera.Model.Encomenda> encsEntregues = Lib_Primavera.PriIntegration.ListaEncomendasFiltrado('T' /*, DashboardIntegration.Properties.Settings.Default.Company.Trim(), DashboardIntegration.Properties.Settings.Default.User.Trim(), DashboardIntegration.Properties.Settings.Default.Password.Trim()*/);
                foreach (Lib_Primavera.Model.Encomenda e in encsEntregues)
                {
                    string parsedDate = e.DataDoc.ToString("yyyy-MM-dd hh:mm:ss");

                    string query = "IF (SELECT COUNT(CodEncomenda) FROM EncomendasFornecedor WHERE CodEncomenda='" + e.CodEncomenda + "' AND EmpresaId='" + EmpresaId + "') > 0 ";
                    query += "UPDATE EncomendasFornecedor SET Entidade='" + sanitize(e.Entidade) + "', Origem='" + sanitize(e.Origem) + "',TotalDesc=" + e.TotalDesc.ToString().Replace(",", ".") + ",TotalIva=" + e.TotalIva.ToString().Replace(",", ".") + ",TotalMerc=" + e.TotalMerc.ToString().Replace(",", ".") + ",ModoPag='" + e.ModoPag + "',DataDoc='" + parsedDate + "',Entregue = 1 WHERE CodEncomenda='" + e.CodEncomenda + "' AND EmpresaId='" + EmpresaId + "'; ";
                    query += "ELSE ";
                    query += "INSERT INTO EncomendasFornecedor VALUES('";
                    query += e.CodEncomenda + "', '" + sanitize(e.Entidade) + "', '" + sanitize(e.Origem) + "'," + e.TotalDesc.ToString().Replace(",", ".") + "," + e.TotalIva.ToString().Replace(",", ".") + "," + e.TotalMerc.ToString().Replace(",", ".") + ",'" + e.ModoPag + "','" + parsedDate + "', 1";
                    query += ",'" + EmpresaId + "');";
                    SqlCommand com = new SqlCommand(query, sc);
                    com.ExecuteScalar();
                    //Carregar linhas do doc
                    foreach (Lib_Primavera.Model.LinhaDocCompra l in e.LinhasEnc)
                    {
                        string queryl = "IF (SELECT COUNT(Id) FROM LinePurchases WHERE Id='" + l.Id + "' AND EmpresaId='" + EmpresaId + "') > 0 ";
                        queryl += "UPDATE LinePurchases SET IdCabecDoc='" + l.IdCabecDoc + "', CodArtigo='" + l.CodArtigo + "',Descricao='" + sanitize(l.DescArtigo) + "',Quantidade=" + Math.Truncate(l.Quantidade) + ",Unidade='" + l.Unidade + "',Desconto1=" + l.Desconto + ",PrecUnit=" + l.PrecoUnitario.ToString().Replace(",", ".") + ",TotalLiquido=" + l.TotalILiquido.ToString().Replace(",", ".") + ",PrecoLiquido=" + l.TotalLiquido.ToString().Replace(",", ".") + ",Armazem='" + l.Armazem + "',Lote='" + l.Lote + "',NumLinha=" + l.NumLinha + " WHERE Id='" + l.Id + "' AND EmpresaId='" + EmpresaId + "';";
                        queryl += "ELSE ";
                        queryl += "INSERT INTO LinePurchases VALUES('" + l.Id + "', '" + l.IdCabecDoc + "', '" + l.CodArtigo + "','" + sanitize(l.DescArtigo) + "'," + Math.Truncate(l.Quantidade) + ",'" + l.Unidade + "'," + l.Desconto + "," + l.PrecoUnitario.ToString().Replace(",", ".") + "," + l.TotalILiquido.ToString().Replace(",", ".") + "," + l.TotalLiquido.ToString().Replace(",", ".") + ",'" + l.Armazem + "','" + l.Lote + "','" + EmpresaId + "'," + l.NumLinha + ");";
                        SqlCommand coml = new SqlCommand(queryl, sc);
                        coml.ExecuteScalar();
                    }
                }
                //Carregar encomendas feitas pendentes
                List <Lib_Primavera.Model.Encomenda> encsPendentes = Lib_Primavera.PriIntegration.ListaEncomendasFiltrado('P' /*, DashboardIntegration.Properties.Settings.Default.Company.Trim(), DashboardIntegration.Properties.Settings.Default.User.Trim(), DashboardIntegration.Properties.Settings.Default.Password.Trim()*/);
                foreach (Lib_Primavera.Model.Encomenda e in encsPendentes)
                {
                    string parsedDate = e.DataDoc.ToString("yyyy-MM-dd hh:mm:ss");
                    string query      = "IF (SELECT COUNT(CodEncomenda) FROM EncomendasFornecedor WHERE CodEncomenda='" + e.CodEncomenda + "' AND EmpresaId='" + EmpresaId + "') > 0 ";
                    query += "UPDATE EncomendasFornecedor SET Entidade='" + sanitize(e.Entidade) + "', Origem='" + sanitize(e.Origem) + "',TotalDesc=" + e.TotalDesc.ToString().Replace(",", ".") + ",TotalIva=" + e.TotalIva.ToString().Replace(",", ".") + ",TotalMerc=" + e.TotalMerc.ToString().Replace(",", ".") + ",ModoPag='" + e.ModoPag + "',DataDoc='" + parsedDate + "',Entregue = 0 WHERE CodEncomenda='" + e.CodEncomenda + "' AND EmpresaId='" + EmpresaId + "'; ";
                    query += "ELSE ";
                    query += "INSERT INTO EncomendasFornecedor VALUES('";
                    query += e.CodEncomenda + "', '" + sanitize(e.Entidade) + "', '" + sanitize(e.Origem) + "'," + e.TotalDesc.ToString().Replace(",", ".") + "," + e.TotalIva.ToString().Replace(",", ".") + "," + e.TotalMerc.ToString().Replace(",", ".") + ",'" + e.ModoPag + "','" + parsedDate + "', 0";
                    query += ",'" + EmpresaId + "');";
                    try
                    {
                        SqlCommand com = new SqlCommand(query, sc);
                        com.ExecuteScalar();
                        //Carregar linhas do doc
                        foreach (Lib_Primavera.Model.LinhaDocCompra l in e.LinhasEnc)
                        {
                            string queryl = "IF (SELECT COUNT(Id) FROM LinePurchases WHERE Id='" + l.Id + "' AND EmpresaId='" + EmpresaId + "') > 0 ";
                            queryl += "UPDATE LinePurchases SET IdCabecDoc='" + l.IdCabecDoc + "', CodArtigo='" + l.CodArtigo + "',Descricao='" + sanitize(l.DescArtigo) + "',Quantidade=" + Math.Truncate(l.Quantidade) + ",Unidade='" + l.Unidade + "',Desconto1=" + l.Desconto + ",PrecUnit=" + l.PrecoUnitario.ToString().Replace(",", ".") + ",TotalLiquido=" + l.TotalILiquido.ToString().Replace(",", ".") + ",PrecoLiquido=" + l.TotalLiquido.ToString().Replace(",", ".") + ",Armazem='" + l.Armazem + "',Lote='" + l.Lote + "',NumLinha=" + l.NumLinha + " WHERE Id='" + l.Id + "' AND EmpresaId='" + EmpresaId + "';";
                            queryl += "ELSE ";
                            queryl += "INSERT INTO LinePurchases VALUES('" + l.Id + "', '" + l.IdCabecDoc + "', '" + l.CodArtigo + "','" + sanitize(l.DescArtigo) + "'," + Math.Truncate(l.Quantidade) + ",'" + l.Unidade + "'," + l.Desconto + "," + l.PrecoUnitario.ToString().Replace(",", ".") + "," + l.TotalILiquido.ToString().Replace(",", ".") + "," + l.TotalLiquido.ToString().Replace(",", ".") + ",'" + l.Armazem + "','" + l.Lote + "','" + EmpresaId + "'," + l.NumLinha + ");";
                            SqlCommand coml = new SqlCommand(queryl, sc);
                            coml.ExecuteScalar();
                        }
                    }
                    catch (System.Data.SqlClient.SqlException ex)
                    {
                        continue;
                    }
                }
            }


            /* AVG of each product */
            PriceArtigo = new Dictionary <String, Double>();

            SqlCommand    comp = new SqlCommand("SELECT codArtigo, AVG(PrecUnit)  FROM LinePurchases GROUP BY codArtigo ", sc);
            SqlDataReader dr   = comp.ExecuteReader();

            while (dr.Read())
            {
                IDataRecord rec   = (IDataRecord)dr;
                String      cod   = (String)(rec[0]);
                double      price = (double)(decimal)(rec[1]);

                PriceArtigo.Add(cod, price);
            }
            dr.Close();


            XmlNodeList masterFiles  = xmlDoc.SelectNodes("/ns:AuditFile/ns:MasterFiles/*", xmlnsManager);
            XmlNodeList masterFiles2 = root.SelectNodes("/ns:MasterFiles/*", xmlnsManager);

            foreach (XmlNode node in masterFiles)
            {
                switch (node.Name)
                {
                case "Customer":
                    parseCostumer(node, xmlnsManager);
                    break;

                case "Supplier":
                    parseSupplier(node, xmlnsManager);
                    break;

                case "Product":
                    parseProduct(node, xmlnsManager);
                    break;

                default:
                    break;
                }
            }

            XmlNodeList SourceDocuments = xmlDoc.SelectNodes("/ns:AuditFile/ns:SourceDocuments/*", xmlnsManager);
            XmlNodeList auxNode         = null;

            foreach (XmlNode node in SourceDocuments)
            {
                switch (node.Name)
                {
                case "SalesInvoices":

                    string TotalDebit  = node.SelectSingleNode("descendant::ns:TotalDebit", xmlnsManager).InnerText;
                    string TotalCredit = node.SelectSingleNode("descendant::ns:TotalCredit", xmlnsManager).InnerText;
                    string entriesS    = node.SelectSingleNode("descendant::ns:NumberOfEntries", xmlnsManager).InnerText;
                    int    stringSize  = entriesS.Length;
                    double entries     = 0;
                    for (int i = 0; i < stringSize; i++)
                    {
                        entries += (int)Char.GetNumericValue(entriesS[i]) * Math.Pow(10, (stringSize - i - 1));
                    }
                    int        iEntries = (int)entries;
                    string     query    = "INSERT INTO SalesInvoices VALUES('" + TotalDebit + "', '" + TotalDebit + "', " + iEntries + ",'" + EmpresaId + "')";
                    SqlCommand com      = new SqlCommand(query, sc);
                    com.ExecuteScalar();
                    auxNode = node.SelectNodes("descendant::ns:Invoice", xmlnsManager);

                    foreach (XmlNode Invoice in auxNode)
                    {
                        parseInvoice(Invoice, xmlnsManager);
                    }
                    break;

                case "MovementOfGoods":
                    auxNode = node.SelectNodes("descendant::StockMovement", xmlnsManager);
                    break;

                case "WorkingDocuments":
                    break;

                case "Payments":
                    break;
                }
            }


            sc.Close();
        }
Beispiel #16
0
        public static List<Lib_Primavera.Model.Artigo> GetArtigos(Lib_Primavera.Model.Carrinho car)
        {
            StdBELista objListLin;
            List<Lib_Primavera.Model.Artigo> artigos = new List<Lib_Primavera.Model.Artigo>();

            if (PriEngine.InitializeCompany(SINF.Properties.Settings.Default.Company.Trim(), SINF.Properties.Settings.Default.User.Trim(), SINF.Properties.Settings.Default.Password.Trim()) == true)
            {
                foreach(String codArtigo in car.Produtos_id){
                    Lib_Primavera.Model.Artigo artigo = new Lib_Primavera.Model.Artigo();

                    string query = "SELECT a.*, m.*, f.Descricao as familiaDesc, i.Taxa, i.Iva " +
                    "FROM Artigo as a, ArtigoMoeda as m, Familias as f, Iva as i " +
                    "where a.Artigo = m.Artigo AND a.Artigo='" + codArtigo + "' " +
                    "AND a.Familia = f.Familia AND i.Iva = a.Iva";

                    objListLin = PriEngine.Engine.Consulta(query);

                    if (!objListLin.NoFim())
                    {
                        artigo.CodArtigo = objListLin.Valor("Artigo");
                        artigo.DescArtigo = objListLin.Valor("Descricao");
                        artigo.Categoria = objListLin.Valor("Familia");
                        artigo.SubCategoria = objListLin.Valor("SubFamilia");

                        artigo.CategoriaDesc = objListLin.Valor("familiaDesc");

                        artigo.PVP = objListLin.Valor("PVP1");
                        artigo.Moeda = objListLin.Valor("Moeda");
                        artigo.UnidadeBase = objListLin.Valor("UnidadeBase");
                        artigo.Marca = objListLin.Valor("Marca");
                        artigo.Modelo = objListLin.Valor("Modelo");
                        artigo.Peso = objListLin.Valor("Peso");
                        artigo.IVA = objListLin.Valor("Taxa");

                        if (artigo.SubCategoria != "")
                        {
                            string querySubFamilia = "SELECT * FROM SubFamilias WHERE SubFamilias.SubFamilia = '" + artigo.SubCategoria + "'";
                            StdBELista subfam = PriEngine.Engine.Consulta(querySubFamilia);
                            if (!subfam.NoFim())
                                artigo.SubCategoriaDesc = subfam.Valor("Descricao");
                        }
                        if (artigo.Marca != "")
                        {
                            string queryMarca = "SELECT Descricao FROM Marcas WHERE Marcas.Marca = '" + artigo.Marca + "'";
                            StdBELista marca = PriEngine.Engine.Consulta(queryMarca);
                            if (!marca.NoFim())
                                artigo.MarcaDesc = marca.Valor("Descricao");
                        }
                    }
                    else artigo = null;

                    artigos.Add(artigo);
                }

            }
            return artigos;
        }
Beispiel #17
0
 // GET: api/artigos/a0001
 public Artigo Get(string id)
 {
     Lib_Primavera.Model.Artigo artigo = Lib_Primavera.PriIntegration.GetArtigo(id);
     return(artigo);
 }