Usuário com melhor resposta
CRM 2011 - Campo money formatação errada

Pergunta
-
Pessoal,
tenho um serviço windows q fica de tempo em tempo lendo um diretório para integrar dados ao crm 2011 que contém arquivos testes onde um dos valores está assim:
3650,10
quando realizo a integração ou seja, rodo o código q este windows services roda, chamando por um console application local fica certinho o valor, porém lá no servidor fica com formato errado.
O que eu ja fiz:
mexi nas configurações regionais da maquina colocando para portugues brasil pois o windows é em inglês, ajustei o formato do money e também no crm 2011 na opção q trata isto.
também já coloquei no codigo valor.replace(".",",");
o que mais deve ser feito?
veja imagem abaixo com o comparativo.
Respostas
-
Edilson,
Ajuste as configurações regionais do seu server para serem iguais da sua máquina, ou para não ficar se preocupando com isso, ajuste o algoritmo para ler as informações regionais e se adaptar.
Att,
Tiago Michelini Cardoso MVP - MCC - MCTS
https://tiagomcardoso.wordpress.com/- Marcado como Resposta Rodrigo HentzModerator terça-feira, 28 de agosto de 2012 10:56
-
Edilson, como o Tiago falou depende da configuração do seu servidor.
mas se quiser testar substitua o ponto por nada e depois usa o valor resultante dividindo por 100.
Exemplo:
string teste = "100.23";
invoicedetail.Attributes["priceperunit"] = new Money(Decimal.Parse(teste.Replace(".", "")) / 100);
ou voce pode usar as classes de localizacao e fazer da maneira que o Tiago comentou. pegar a localizacao do servidor crm e onverter o valor para a localizacao correta, veja estes exemplo http://msdn.microsoft.com/en-us/goglobal/bb688126.aspx
Atenciosamente,
Rodrigo Hentz - MCP.MCPS.MCNPS.MCTS.MBSS.MBSP.MCITP
Profile
Blog- Editado Rodrigo HentzModerator terça-feira, 21 de agosto de 2012 16:34 nome errado
- Sugerido como Resposta Rodrigo HentzModerator terça-feira, 21 de agosto de 2012 16:35
- Marcado como Resposta Rodrigo HentzModerator terça-feira, 28 de agosto de 2012 10:57
Todas as Respostas
-
Edilson,
Ajuste as configurações regionais do seu server para serem iguais da sua máquina, ou para não ficar se preocupando com isso, ajuste o algoritmo para ler as informações regionais e se adaptar.
Att,
Tiago Michelini Cardoso MVP - MCC - MCTS
https://tiagomcardoso.wordpress.com/- Marcado como Resposta Rodrigo HentzModerator terça-feira, 28 de agosto de 2012 10:56
-
-
Edilson, como o Tiago falou depende da configuração do seu servidor.
mas se quiser testar substitua o ponto por nada e depois usa o valor resultante dividindo por 100.
Exemplo:
string teste = "100.23";
invoicedetail.Attributes["priceperunit"] = new Money(Decimal.Parse(teste.Replace(".", "")) / 100);
ou voce pode usar as classes de localizacao e fazer da maneira que o Tiago comentou. pegar a localizacao do servidor crm e onverter o valor para a localizacao correta, veja estes exemplo http://msdn.microsoft.com/en-us/goglobal/bb688126.aspx
Atenciosamente,
Rodrigo Hentz - MCP.MCPS.MCNPS.MCTS.MBSS.MBSP.MCITP
Profile
Blog- Editado Rodrigo HentzModerator terça-feira, 21 de agosto de 2012 16:34 nome errado
- Sugerido como Resposta Rodrigo HentzModerator terça-feira, 21 de agosto de 2012 16:35
- Marcado como Resposta Rodrigo HentzModerator terça-feira, 28 de agosto de 2012 10:57