♥ 0 | Bom dia, após atualização do primavera para a ultima versão, os motores de integração no que diz respeito as composições deixou de funcionar, aparentemente nao está a ler as casas decimais de uma listview o que provoca falta de stock:
InvBEDocumentoComposicao objComposition = new InvBEDocumentoComposicao() { Tipodoc = "COM", Serie = datamomento.Year.ToString(), Data = datamomento.AddMinutes(1), Utilizador = "", }; PriEngine.Engine.Inventario.Composicoes.PreencheDadosRelacionados(objComposition); if (componentsLines == null) componentsLines = new List<ComponentsLines>(); double.TryParse(item.SubItems[7].Text, NumberStyles.Any, new CultureInfo("pt-PT"), out double quantidadeComposto); double.TryParse(item.SubItems[10].Text, NumberStyles.Any, new CultureInfo("pt-PT"), out double precoUnitarioComposto); var newComponentLine = new ComponentsLines() { Index = 0, LinhaComposto = new InvBELinhaComposto() { Artigo = item.SubItems[5].Text, Armazem = "PROD", Descricao = item.SubItems[6].Text, Quantidade = quantidadeComposto, PrecUnit = precoUnitarioComposto, INV_EstadoDestino = "DISP", Lote = "", } }; componentsLines.Add(newComponentLine); foreach (ListViewItem componente in lstcomponentes.Items) { double.TryParse(componente.SubItems[2].Text, NumberStyles.Any, new CultureInfo("pt-PT"), out double qtdartigo); double.TryParse(componente.SubItems[4].Text, NumberStyles.Any, new CultureInfo("pt-PT"), out double precounitariolinha); newComponentLine.LinhaComposto.LinhasComponentes.Add(new InvBELinhaComponente() { Artigo = componente.SubItems[0].Text, Descricao = componente.SubItems[1].Text, Armazem = "PROD", Localizacao = "PROD", Unidade = componente.SubItems[3].Text, Quantidade = qtdartigo, PrecUnit = precounitariolinha, INV_EstadoOrigem = "DISP", Lote = "", }); } foreach (var lines in componentsLines) { objComposition.LinhasCompostos.Insere(lines.LinhaComposto); } // Creates the Compositions/Breakdowns document. PriEngine.Engine.Inventario.Composicoes.Actualiza(objComposition, ref errors); O Debug diz que não tem stock nos componentes do composto, mas na realidade não está a ler as casas decimais apesar da variavel ser do tipo double conforme requisitado. Alguem sabe como ultrapassar esta situação? Obrigado.
Marcado como spam |
2 respostas
Resposta privada Bom dia Pedro, Tente: double.Parse(valorstring, System.Globalization.CultureInfo.InvariantCulture); O seu problema é no tratamento do separador das casas decimais Marcado como spam | |