Main Class:
@RestResource(urlMapping='/updateFaturamento/*')
global class contractFat {
public class ContractJSON {
public List<Contract> Contract;
public class Contract {
public String idSalesForce;
public String dtEmissao;
public String nrContrato;
public String vlVenda;
public String vlDevolucao;
public String qtTotalClientes;
public String qtClientesAtivosMes;
public String flagMensal;
}
public ContractJSON parse(String json) {
return (ContractJSON) System.JSON.deserialize(json, ContractJSON.class);
}
}
@HttpPatch
global static String updateFaturamento(String contractId,Integer nrContrato, Boolean flagMensal, Double vlVenda, Double vlDevolucao,
integer qtTotalClientes, integer qtClientesAtivosMes, Date dtEmissao ){
RestRequest req = RestContext.request;
RestResponse res = RestContext.response;
if (flagMensal == false){
Opportunity oppInsert = [SELECT Id,Data_Emissao__c, Numero_Contrato_Univers__c, Valor_Vendas__c, Valor_Devolucao__c,
Quantidade_Total_Clientes__c, Quantidade_Cliente_Ativos_Mes__c
from Opportunity WHERE ContractId =: contractId and Numero_Contrato_Univers__c =: nrContrato];
//if (oppInsert.Numero_Contrato_Univers__c == null ){}
oppInsert.Data_Emissao__c = dtEmissao;
oppInsert.Numero_Contrato_Univers__c = nrContrato;
oppInsert.Valor_Vendas__c = vlVenda;
oppInsert.Valor_Devolucao__c = vlDevolucao;
oppInsert.Quantidade_Total_Clientes__c = qtTotalClientes;
oppInsert.Quantidade_Cliente_Ativos_Mes__c = qtClientesAtivosMes;
upsert oppInsert ;
return 'Faturamento';
} else if (flagMensal == true) {
Contract contractInsert = [SELECT Id, Data_Emissao__c, Valor_Vendas__c, Valor_Devolucao__c, Quantidade_Total_Clientes__c,
Quantidade_Clientes_Ativos_Mes__c from Contract WHERE Id =: contractId];
contractInsert.Data_Emissao__c = dtEmissao;
contractInsert.Valor_Vendas__c = vlVenda;
contractInsert.Valor_Devolucao__c = vlDevolucao;
contractInsert.Quantidade_Total_Clientes__c = qtTotalClientes;
contractInsert.Quantidade_Clientes_Ativos_Mes__c = qtClientesAtivosMes;
upsert ContractInsert;
/*List<Opportunity> listOpportunity = [select ContractId, Id, Numero_Contrato_Univers__c, Data_Emissao__c, Valor_Vendas__c,
Valor_Devolucao__c, Quantidade_Total_Clientes__c, Quantidade_Cliente_Ativos_Mes__c
from Opportunity where ContractId =: contractId and Numero_Contrato_Univers__c =: nrContrato ];
for(Opportunity opp : listOpportunity){
Opportunity oppDeleteDiario = new Opportunity ();
oppDeleteDiario.Data_Emissao__c = dtEmissao;
oppDeleteDiario.Valor_Vendas__c = vlVenda;
oppDeleteDiario.Valor_Devolucao__c = vlDevolucao;
oppDeleteDiario.Quantidade_Total_Clientes__c = qtTotalClientes;
oppDeleteDiario.Quantidade_Cliente_Ativos_Mes__c = qtClientesAtivosMes;
delete oppDeleteDiario;
return 'Deleted';
} */
Opportunity oppDelete = [SELECT Id,Data_Emissao__c, Numero_Contrato_Univers__c, Valor_Vendas__c, Valor_Devolucao__c,
Quantidade_Total_Clientes__c, Quantidade_Cliente_Ativos_Mes__c
from Opportunity WHERE ContractId =: contractId and Numero_Contrato_Univers__c =: nrContrato];
//oppDelete.Data_Emissao__c = dtEmissao;
//oppDelete.Numero_Contrato_Univers__c = nrContrato;
oppDelete.Valor_Vendas__c = null;
oppDelete.Valor_Devolucao__c = null;
oppDelete.Quantidade_Total_Clientes__c = null;
oppDelete.Quantidade_Cliente_Ativos_Mes__c = null;
delete oppDelete;
return 'Faturamento Mensal Updated';
}
return null;
}
}
Hi everyone, I'm new to Salesforce and need to get a JSON to put inside my Apex class as per the code above. However it presents the following error:
Inner types are not allowed to have inner types
(in excerpt of the code:
public class Contract {
public String idSalesForce;
public String dtEmissao;
public String nrContract;
public String vlVenda;
public String vlDevolution;
public String qtTotalClients;
public String qtClientActiveMes;
public String flagMensal;
}
Can anyone help me with this problem?