Advertisement
Guest User

Untitled

a guest
Oct 21st, 2014
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 6.76 KB | None | 0 0
  1. procedure TImpactoService.DeleteOrcamentoVendasDados(value: string);
  2. var
  3.   conversor:TJSONParser;
  4.   aOrcamento:TOrcamentosVendasDados;
  5.   collectionItensOrcamento:TList;
  6. begin
  7.   try
  8.     conversor:=TJSONParser.Create;
  9.     aOrcamento := conversor.DeserializeOrcamentoDadosObject(value);
  10.     collectionItensOrcamento := conversor.DeserializeOrcamentoItensObject(value);
  11.     uLibrary.DeleteOrcamentoDeVenda(aOrcamento, collectionItensOrcamento);
  12.   finally
  13.     conversor.Free;
  14.     aOrcamento.Free;
  15.     collectionItensOrcamento.Free;
  16.   end;
  17. end;
  18.  
  19. function TJSONParser.DeserializeOrcamentoDadosObject(value:string):TOrcamentosVendasDados;
  20. var
  21.   aOrcamento:TOrcamentosVendasDados;
  22.   jsonParser:ISuperObject;
  23. begin
  24.   jsonParser:= SO(value);
  25.   aOrcamento := TOrcamentosVendasDados.Create;
  26.   aOrcamento.FEmpresa := jsonParser.AsObject['fields'].S['FEmpresa'];
  27.   aOrcamento.FFilial := jsonParser.AsObject['fields'].S['FFilial'];
  28.   aOrcamento.FNumero := jsonParser.AsObject['fields'].I['FNumero'];
  29.   aOrcamento.FEmissao := jsonParser.AsObject['fields'].S['FEmissao'];
  30.   aOrcamento.FNumeroCliente := jsonParser.AsObject['fields'].I['FNumeroCliente'];
  31.   aOrcamento.FNomeCliente := jsonParser.AsObject['fields'].S['FNomeCliente'];
  32.   aOrcamento.FNumeroVendedor := jsonParser.AsObject['fields'].I['FNumeroVendedor'];
  33.   aOrcamento.FTipoEndereco := jsonParser.AsObject['fields'].S['FTipoEndereco'];
  34.   aOrcamento.FTipoPreco := jsonParser.AsObject['fields'].S['FTipoPreco'];
  35.   aOrcamento.FCondicaoDePagamento := jsonParser.AsObject['fields'].I['FCondicaoPagamento'];
  36.   aOrcamento.FDataValidade := jsonParser.AsObject['fields'].S['FDataValidade'];
  37.   aOrcamento.FEnderecoParaEntrega := jsonParser.AsObject['fields'].I['FEnderecoParaEntrega'];
  38.   aOrcamento.FItensSerializado := jsonParser.AsObject['fields'].S['FItensSerializado'];
  39.   aOrcamento.FSituacao := jsonParser.AsObject['fields'].S['FSituacao'];
  40.   aOrcamento.FUF := jsonParser.AsObject['fields'].S['FUF'];
  41.   aOrcamento.FValorBruto := jsonParser.AsObject['fields'].D['FValorBruto'];
  42.   aOrcamento.FValorLiquido := jsonParser.AsObject['fields'].D['FValorLiquido'];
  43.   Result := aOrcamento;
  44. end;
  45.  
  46. function TJSONParser.DeserializeOrcamentoItensObject(value:string):TList;
  47. var
  48.   I:integer;
  49.   lista:TList;
  50.   aOrcamentoItem:TOrcamentosVendasItens;
  51.   jsonParser, obj:ISuperObject;
  52. begin
  53.   jsonParser := SO(value);
  54.   lista := TList.Create;
  55.  
  56.   for I := 0 to jsonParser.AsObject['fields'].A['FItens'].Length -1 do
  57.     begin
  58.       obj := jsonParser.AsObject['fields'].A['FItens'].O[i];
  59.       aOrcamentoItem := TOrcamentosVendasItens.Create;
  60.       aOrcamentoItem.FEmpresa := obj.S['FEmpresa'];
  61.       aOrcamentoItem.FFilial := obj.S['FFilial'];
  62.       aOrcamentoItem.FItem := obj.I['FItem'];
  63.       aOrcamentoItem.FNumero := obj.I['FNumero'];
  64.       aOrcamentoItem.FCodigoProduto := obj.S['FCodigoProduto'];
  65.       aOrcamentoItem.FDescricaoProduto := obj.S['FDescricaoProduto'];
  66.       aOrcamentoItem.F1aUm := obj.S['F1aUm'];
  67.       aOrcamentoItem.FLocal := obj.S['FLocal'];
  68.       aOrcamentoItem.FQuantidade := obj.I['FQuantidade'];
  69.       aOrcamentoItem.FUnitario := obj.D['FUnitario'];
  70.       aOrcamentoItem.FValorMercadorias := obj.D['FTotal'];
  71.       aOrcamentoItem.FValorBruto := obj.D['FValorBruto'];
  72.       aOrcamentoItem.FValorLiquido := obj.D['FValorLiquido'];
  73.       aOrcamentoItem.FEntrega := obj.S['FEntrega'];
  74.       aOrcamentoItem.FRegra := obj.I['FRegra'];
  75.       aOrcamentoItem.FCFOP := obj.I['FCFOP'];
  76.       aOrcamentoItem.FValorMercadorias := obj.D['FValorMercadoria'];
  77.       lista.Add(aOrcamentoItem);
  78.     end;
  79.  
  80.    Result := lista;
  81. end;
  82.  
  83. function GetOrcamentoVenda(codigo:integer;Empresa:string;Filial:string):TClientDataSet;
  84. var
  85.   cdsOrcamentosVendasDados :TClientDataSet;
  86.   SQL :string;
  87. begin
  88.   if Connected then
  89.    begin
  90.      Proxy.GetEntityOwner('ORCAMENTOS_VENDAS_DADOS', Empresa, Filial);
  91.      SQL := 'SELECT * FROM ORCAMENTOS_VENDAS_DADOS '+
  92.             'INNER JOIN ORCAMENTOS_VENDAS_ITENS ON ORCAMENTOS_VENDAS_DADOS.NUMERO = ORCAMENTOS_VENDAS_ITENS.NUMERO '+
  93.             'INNER JOIN ORCAMENTOS_VENDAS_HISTORICOS ON ORCAMENTOS_VENDAS_DADOS.NUMERO = ORCAMENTOS_VENDAS_HISTORICOS.NUMERO '+
  94.             'WHERE ORCAMENTOS_VENDAS_DADOS.NUMERO = %d AND '+
  95.             'ORCAMENTOS_VENDAS_DADOS.EMPRESA = %s AND '+
  96.             'ORCAMENTOS_VENDAS_DADOS.FILIAL = %s';
  97.      SQL := Format(SQL,[codigo, QuotedStr(Empresa), QuotedStr(Filial)]);
  98.  
  99.      cdsOrcamentosVendasDados := TClientDataSet.Create(Nil);
  100.      cdsOrcamentosVendasDados.ProviderName := 'dspOrcamentos_Vendas_Dados';
  101.      cdsOrcamentosVendasDados.RemoteServer := ServerMethods.dspcLancamento;
  102.      cdsOrcamentosVendasDados.CommandText := SQL;
  103.      cdsOrcamentosVendasDados.Open;
  104.  
  105.      if not cdsOrcamentosVendasDados.IsEmpty then
  106.       begin
  107.         Result:= cdsOrcamentosVendasDados;
  108.       end
  109.      else
  110.       begin
  111.         Result := Nil;
  112.       end;
  113.    end;
  114. end;
  115.  
  116. procedure TServerMethods.cdsOrcamentos_Vendas_DadosBeforePost(DataSet: TDataSet);
  117. begin
  118. if not CheckRequiredFields(DataSet) then
  119.   raise exception.Create('Erro!');
  120. end;
  121.  
  122. procedure TServerMethods.cdsOrcamentos_Vendas_DadosReconcileError(DataSet: TCustomClientDataSet; E: EReconcileError; UpdateKind: TUpdateKind;
  123. var Action: TReconcileAction);
  124. begin
  125.   raise exception.create(e.Message);
  126. end;
  127.  
  128. procedure TServerMethods.cdsOrcamentos_Vendas_DadosPostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);
  129. begin
  130.   raise exception.Create('Error Message ' + e.Message);
  131. end;
  132.  
  133. procedure DeleteOrcamentoDeVenda(aOrcamento:TOrcamentosVendasDados; itens:TList);
  134. var
  135.   i:integer;
  136. begin
  137.    try
  138.      try
  139.         Proxy.GetEntityOwner('ORCAMENTOS_VENDAS_DADOS', __ImpactoWebCompany, __ImpactoWebBranch);
  140.         with ServerMethods do
  141.           begin
  142.             cdsOrcamentos_Vendas_Dados := GetOrcamentoVenda(aOrcamento.FNumero, __ImpactoWebCompany, __ImpactoWebBranch);
  143.             cdsOrcamentos_Vendas_Itens.DataSetField := cdsOrcamentos_Vendas_Dados.FieldByName('sqlOrcamentos_Vendas_Itens') as TDataSetField;
  144.             cdsOrcamentos_Vendas_Historicos.DataSetField := cdsOrcamentos_Vendas_Dados.FieldByName('sqlOrcamentos_Vendas_Historicos') as TDataSetField;
  145.  
  146.             while not cdsOrcamentos_Vendas_Historicos.Eof do
  147.              begin
  148.                cdsOrcamentos_Vendas_Historicos.Delete;
  149.              end;
  150.  
  151.             while not cdsOrcamentos_Vendas_Itens.Eof do
  152.              begin
  153.               cdsOrcamentos_Vendas_Itens.Delete;
  154.              end;
  155.             cdsOrcamentos_Vendas_Dados.Delete;
  156.             cdsOrcamentos_Vendas_Dados.ApplyUpdates(0);
  157.             cdsOrcamentos_Vendas_Dados.Close;
  158.           end;
  159.      except
  160.       on E: Exception do
  161.         raise Exception.Create('Erro ao inserir ' + E.Message);
  162.      end;
  163.    finally
  164.      FreeAndNil(ServerMethods.cdsVendedores);
  165.    end;
  166. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement