Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- procedure TImpactoService.DeleteOrcamentoVendasDados(value: string);
- var
- conversor:TJSONParser;
- aOrcamento:TOrcamentosVendasDados;
- collectionItensOrcamento:TList;
- begin
- try
- conversor:=TJSONParser.Create;
- aOrcamento := conversor.DeserializeOrcamentoDadosObject(value);
- collectionItensOrcamento := conversor.DeserializeOrcamentoItensObject(value);
- uLibrary.DeleteOrcamentoDeVenda(aOrcamento, collectionItensOrcamento);
- finally
- conversor.Free;
- aOrcamento.Free;
- collectionItensOrcamento.Free;
- end;
- end;
- function TJSONParser.DeserializeOrcamentoDadosObject(value:string):TOrcamentosVendasDados;
- var
- aOrcamento:TOrcamentosVendasDados;
- jsonParser:ISuperObject;
- begin
- jsonParser:= SO(value);
- aOrcamento := TOrcamentosVendasDados.Create;
- aOrcamento.FEmpresa := jsonParser.AsObject['fields'].S['FEmpresa'];
- aOrcamento.FFilial := jsonParser.AsObject['fields'].S['FFilial'];
- aOrcamento.FNumero := jsonParser.AsObject['fields'].I['FNumero'];
- aOrcamento.FEmissao := jsonParser.AsObject['fields'].S['FEmissao'];
- aOrcamento.FNumeroCliente := jsonParser.AsObject['fields'].I['FNumeroCliente'];
- aOrcamento.FNomeCliente := jsonParser.AsObject['fields'].S['FNomeCliente'];
- aOrcamento.FNumeroVendedor := jsonParser.AsObject['fields'].I['FNumeroVendedor'];
- aOrcamento.FTipoEndereco := jsonParser.AsObject['fields'].S['FTipoEndereco'];
- aOrcamento.FTipoPreco := jsonParser.AsObject['fields'].S['FTipoPreco'];
- aOrcamento.FCondicaoDePagamento := jsonParser.AsObject['fields'].I['FCondicaoPagamento'];
- aOrcamento.FDataValidade := jsonParser.AsObject['fields'].S['FDataValidade'];
- aOrcamento.FEnderecoParaEntrega := jsonParser.AsObject['fields'].I['FEnderecoParaEntrega'];
- aOrcamento.FItensSerializado := jsonParser.AsObject['fields'].S['FItensSerializado'];
- aOrcamento.FSituacao := jsonParser.AsObject['fields'].S['FSituacao'];
- aOrcamento.FUF := jsonParser.AsObject['fields'].S['FUF'];
- aOrcamento.FValorBruto := jsonParser.AsObject['fields'].D['FValorBruto'];
- aOrcamento.FValorLiquido := jsonParser.AsObject['fields'].D['FValorLiquido'];
- Result := aOrcamento;
- end;
- function TJSONParser.DeserializeOrcamentoItensObject(value:string):TList;
- var
- I:integer;
- lista:TList;
- aOrcamentoItem:TOrcamentosVendasItens;
- jsonParser, obj:ISuperObject;
- begin
- jsonParser := SO(value);
- lista := TList.Create;
- for I := 0 to jsonParser.AsObject['fields'].A['FItens'].Length -1 do
- begin
- obj := jsonParser.AsObject['fields'].A['FItens'].O[i];
- aOrcamentoItem := TOrcamentosVendasItens.Create;
- aOrcamentoItem.FEmpresa := obj.S['FEmpresa'];
- aOrcamentoItem.FFilial := obj.S['FFilial'];
- aOrcamentoItem.FItem := obj.I['FItem'];
- aOrcamentoItem.FNumero := obj.I['FNumero'];
- aOrcamentoItem.FCodigoProduto := obj.S['FCodigoProduto'];
- aOrcamentoItem.FDescricaoProduto := obj.S['FDescricaoProduto'];
- aOrcamentoItem.F1aUm := obj.S['F1aUm'];
- aOrcamentoItem.FLocal := obj.S['FLocal'];
- aOrcamentoItem.FQuantidade := obj.I['FQuantidade'];
- aOrcamentoItem.FUnitario := obj.D['FUnitario'];
- aOrcamentoItem.FValorMercadorias := obj.D['FTotal'];
- aOrcamentoItem.FValorBruto := obj.D['FValorBruto'];
- aOrcamentoItem.FValorLiquido := obj.D['FValorLiquido'];
- aOrcamentoItem.FEntrega := obj.S['FEntrega'];
- aOrcamentoItem.FRegra := obj.I['FRegra'];
- aOrcamentoItem.FCFOP := obj.I['FCFOP'];
- aOrcamentoItem.FValorMercadorias := obj.D['FValorMercadoria'];
- lista.Add(aOrcamentoItem);
- end;
- Result := lista;
- end;
- function GetOrcamentoVenda(codigo:integer;Empresa:string;Filial:string):TClientDataSet;
- var
- cdsOrcamentosVendasDados :TClientDataSet;
- SQL :string;
- begin
- if Connected then
- begin
- Proxy.GetEntityOwner('ORCAMENTOS_VENDAS_DADOS', Empresa, Filial);
- SQL := 'SELECT * FROM ORCAMENTOS_VENDAS_DADOS '+
- 'INNER JOIN ORCAMENTOS_VENDAS_ITENS ON ORCAMENTOS_VENDAS_DADOS.NUMERO = ORCAMENTOS_VENDAS_ITENS.NUMERO '+
- 'INNER JOIN ORCAMENTOS_VENDAS_HISTORICOS ON ORCAMENTOS_VENDAS_DADOS.NUMERO = ORCAMENTOS_VENDAS_HISTORICOS.NUMERO '+
- 'WHERE ORCAMENTOS_VENDAS_DADOS.NUMERO = %d AND '+
- 'ORCAMENTOS_VENDAS_DADOS.EMPRESA = %s AND '+
- 'ORCAMENTOS_VENDAS_DADOS.FILIAL = %s';
- SQL := Format(SQL,[codigo, QuotedStr(Empresa), QuotedStr(Filial)]);
- cdsOrcamentosVendasDados := TClientDataSet.Create(Nil);
- cdsOrcamentosVendasDados.ProviderName := 'dspOrcamentos_Vendas_Dados';
- cdsOrcamentosVendasDados.RemoteServer := ServerMethods.dspcLancamento;
- cdsOrcamentosVendasDados.CommandText := SQL;
- cdsOrcamentosVendasDados.Open;
- if not cdsOrcamentosVendasDados.IsEmpty then
- begin
- Result:= cdsOrcamentosVendasDados;
- end
- else
- begin
- Result := Nil;
- end;
- end;
- end;
- procedure TServerMethods.cdsOrcamentos_Vendas_DadosBeforePost(DataSet: TDataSet);
- begin
- if not CheckRequiredFields(DataSet) then
- raise exception.Create('Erro!');
- end;
- procedure TServerMethods.cdsOrcamentos_Vendas_DadosReconcileError(DataSet: TCustomClientDataSet; E: EReconcileError; UpdateKind: TUpdateKind;
- var Action: TReconcileAction);
- begin
- raise exception.create(e.Message);
- end;
- procedure TServerMethods.cdsOrcamentos_Vendas_DadosPostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);
- begin
- raise exception.Create('Error Message ' + e.Message);
- end;
- procedure DeleteOrcamentoDeVenda(aOrcamento:TOrcamentosVendasDados; itens:TList);
- var
- i:integer;
- begin
- try
- try
- Proxy.GetEntityOwner('ORCAMENTOS_VENDAS_DADOS', __ImpactoWebCompany, __ImpactoWebBranch);
- with ServerMethods do
- begin
- cdsOrcamentos_Vendas_Dados := GetOrcamentoVenda(aOrcamento.FNumero, __ImpactoWebCompany, __ImpactoWebBranch);
- cdsOrcamentos_Vendas_Itens.DataSetField := cdsOrcamentos_Vendas_Dados.FieldByName('sqlOrcamentos_Vendas_Itens') as TDataSetField;
- cdsOrcamentos_Vendas_Historicos.DataSetField := cdsOrcamentos_Vendas_Dados.FieldByName('sqlOrcamentos_Vendas_Historicos') as TDataSetField;
- while not cdsOrcamentos_Vendas_Historicos.Eof do
- begin
- cdsOrcamentos_Vendas_Historicos.Delete;
- end;
- while not cdsOrcamentos_Vendas_Itens.Eof do
- begin
- cdsOrcamentos_Vendas_Itens.Delete;
- end;
- cdsOrcamentos_Vendas_Dados.Delete;
- cdsOrcamentos_Vendas_Dados.ApplyUpdates(0);
- cdsOrcamentos_Vendas_Dados.Close;
- end;
- except
- on E: Exception do
- raise Exception.Create('Erro ao inserir ' + E.Message);
- end;
- finally
- FreeAndNil(ServerMethods.cdsVendedores);
- end;
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement