All pastes #537701 Raw Edit

Stuff

public text v1 · immutable
·published 2007-06-04 20:31 UTC
rendered paste body
// ***************************************************************************************
// ********************************** TABELA DE PEDIDOS **********************************
// ***************************************************************************************

  //ATRIBUI O NUMERO DO RECNO
  DM.QUERYTEMP.SQL.Clear;
  DM.QUERYTEMP.SQL.Add('SELECT MAX(R_E_C_N_O_)+1 AS RECNO FROM SL1010 ');
  DM.QUERYTEMP.OPEN;
  IF DM.QUERYTEMP.FIELDBYNAME('RECNO').AsInteger = 0 THEN
  BEGIN
    V_RECNO_PED := 1
  END ELSE
  BEGIN
    V_RECNO_PED := DM.QUERYTEMP.FIELDBYNAME('RECNO').AsInteger;
  END;

  //FAZ O SELECT NA TABELA DE PEDIDOS
  DM.QPEDIDO.SQL.Clear;
  DM.QPEDIDO.SQL.Add('SELECT CHAVE, FILIAL, NPEDIDO, CODREPRESENTANTE, CLIENTE, LOJA, ');
  DM.QPEDIDO.SQL.Add('VALIDADE, CONDPGTO, FORMAPGTO, DESC_TOTAL, TOTAL ');
  DM.QPEDIDO.SQL.Add('FROM TBPALMPEDIDO ');
  DM.QPEDIDO.OPEN;

  //ATRIBUI O CODIGO DO REPRESENTANTE
  V_CODREPRESENTANTE := DM.QPEDIDO.FIELDBYNAME('CODREPRESENTANTE').AsString;
  V_FILIAL := DM.QPEDIDO.FIELDBYNAME('FILIAL').AsString;

  //ATRIBUI A FORMA DE PGTO
  IF DM.QPEDIDO.FIELDBYNAME('FORMAPGTO').AsString = 'Boleto' THEN
  BEGIN
    V_FORMAPGTO := 'BO';
  END;
  IF DM.QPEDIDO.FIELDBYNAME('FORMAPGTO').AsString = 'Cobrad' THEN
  BEGIN
    V_FORMAPGTO := 'CR';
  END;
  IF DM.QPEDIDO.FIELDBYNAME('FORMAPGTO').AsString = 'Cheque' THEN
  BEGIN
    V_FORMAPGTO := 'CH';
  END;
  IF DM.QPEDIDO.FIELDBYNAME('FORMAPGTO').AsString = 'Losang' THEN
  BEGIN
    V_FORMAPGTO := 'CL';
  END;
  IF DM.QPEDIDO.FIELDBYNAME('FORMAPGTO').AsString = 'Constr' THEN
  BEGIN
    V_FORMAPGTO := 'CM';
  END;
  IF DM.QPEDIDO.FIELDBYNAME('FORMAPGTO').AsString = 'Cartei' THEN
  BEGIN
    V_FORMAPGTO := 'CR';
  END;
  IF DM.QPEDIDO.FIELDBYNAME('FORMAPGTO').AsString = 'Duplic' THEN
  BEGIN
    V_FORMAPGTO := 'DP';
  END;
  IF DM.QPEDIDO.FIELDBYNAME('FORMAPGTO').AsString = 'Dinhei' THEN
  BEGIN
    V_FORMAPGTO := 'R$';
  END;

  //ATRIBUI A LOJA
  V_LOJA := V_FILIAL;

  //ATRIBUI O CLIENTE
  V_CLIENTE := DM.QPEDIDO.FIELDBYNAME('CLIENTE').AsString;


  //ATRIBUI A CONDIÇÃO DE PGTO
  V_CONDPGTO := DM.QPEDIDO.FIELDBYNAME('CONDPGTO').AsString;

  //ATRIBUI O VALOR LIQUIDO
  V_VALORLIQUIDO := DM.QPEDIDO.FIELDBYNAME('TOTAL').AsFloat;

  //ATRIBUI O DESCONTO TOTAL
  V_DESC_TOTAL := DM.QPEDIDO.FIELDBYNAME('DESC_TOTAL').AsFloat;

  //ATRIBUI O VALOR DO ICM
  V_VALORICM := 0;

  //ATRIBUI O VALOR TOTAL
  V_VALORTOTAL := (DM.QPEDIDO.FIELDBYNAME('TOTAL').AsFloat + DM.QPEDIDO.FIELDBYNAME('DESC_TOTAL').AsFloat);

  //ATRIBUI O NUMERO DO PEDIDO
  DM.QUERYTEMP.SQL.Clear;
  DM.QUERYTEMP.SQL.Add('SELECT MAX(L1_NUM)+10 AS NUMEROPEDIDO FROM SL1010 ');
  DM.QUERYTEMP.SQL.Add('WHERE L1_FILIAL =  ' + V_FILIAL);
  DM.QUERYTEMP.OPEN;
  V_NPEDIDO := DM.QUERYTEMP.FIELDBYNAME('NUMEROPEDIDO').AsString;

  DM.QUERYTEMP.SQL.Clear;
  DM.QUERYTEMP.SQL.Add('INSERT INTO SL1010 ( ');
  DM.QUERYTEMP.SQL.Add('L1_FILIAL,L1_NUM,L1_VEND,L1_COMIS,L1_CLIENTE,L1_EMISSAO, ');
  DM.QUERYTEMP.SQL.Add('L1_TIPOCLI,L1_VLRTOT,L1_DESCONT,L1_VLRLIQ,L1_NROPCLI,L1_DTLIM,L1_VALBRUT, L1_VALMERC, ');
  DM.QUERYTEMP.SQL.Add('L1_ENTRADA,L1_PARCELA,L1_VALICM,L1_CONDPG,L1_FORMPG,L1_LOJA,L1_CONFVEN, ');
  DM.QUERYTEMP.SQL.Add('L1_IMPRIME,L1_TIPOJUR,R_E_C_N_O_ )');

  DM.QUERYTEMP.SQL.Add('VALUES( ');
  DM.QUERYTEMP.SQL.Add(':V_FILIAL,:V_NPEDIDO,:V_CODREPRESENTANTE,' + QuotedStr('1.5') + ',' + ':V_CLIENTE,:V_EMISSAO, ');
  DM.QUERYTEMP.SQL.Add(':V_TIPOCLI,:V_VALORTOTAL,:V_DESC_TOTAL,:V_VALORLIQUIDO, ' + QuotedStr('PALM') + ',');
  DM.QUERYTEMP.SQL.Add(':V_VALIDADE,:V_VALORTOTAL,:V_VALORTOTAL, ');
  DM.QUERYTEMP.SQL.Add(':V_VALORLIQUIDO, ' + QuotedStr('1') + ' ,:V_VALORICM,:V_CONDPGTO,:V_FORMAPGTO, ' + QuotedStr('01') + ',' + QuotedStr('SSSSSSSNSSSS') + ', ');
  DM.QUERYTEMP.SQL.Add(QuotedStr('2N') + ',' + QuotedStr('1') + ',' + ':V_RECNO_PED)');

  DM.QUERYTEMP.ParamByName('V_FILIAL').AsString := V_FILIAL;
  DM.QUERYTEMP.ParamByName('V_NPEDIDO').AsString := V_NPEDIDO;
  DM.QUERYTEMP.ParamByName('V_CODREPRESENTANTE').AsString := V_CODREPRESENTANTE;
  DM.QUERYTEMP.ParamByName('V_CLIENTE').AsString := V_CLIENTE;
  DM.QUERYTEMP.ParamByName('V_EMISSAO').AsString := V_EMISSAO;
  DM.QUERYTEMP.ParamByName('V_TIPOCLI').AsString := V_TIPOCLI;

  DM.QUERYTEMP.ParamByName('V_VALORTOTAL').AsFloat := V_VALORTOTAL;
  DM.QUERYTEMP.ParamByName('V_DESC_TOTAL').AsFloat := V_DESC_TOTAL;
  DM.QUERYTEMP.ParamByName('V_VALORLIQUIDO').AsFloat := V_VALORLIQUIDO;
  DM.QUERYTEMP.ParamByName('V_VALIDADE').AsString := V_VALIDADE;
  DM.QUERYTEMP.ParamByName('V_VALORLIQUIDO').AsFloat := V_VALORLIQUIDO;
  DM.QUERYTEMP.ParamByName('V_VALORICM').AsFloat := V_VALORICM;
  DM.QUERYTEMP.ParamByName('V_CONDPGTO').AsString := V_CONDPGTO;
  DM.QUERYTEMP.ParamByName('V_FORMAPGTO').AsString := V_FORMAPGTO;
  DM.QUERYTEMP.ParamByName('V_RECNO_PED').AsInteger := V_RECNO_PED;
  DM.QUERYTEMP.ExecSQL;
//SHOWMESSAGE(DM.QUERYTEMP.SQL.GetText);

// ***************************************************************************************
// ******************************** TABELA ITENS PEDIDO **********************************
// ***************************************************************************************

  //ATRIBUI O NUMERO DO RECNO
  DM.QUERYTEMP.SQL.Clear;
  DM.QUERYTEMP.SQL.Add('SELECT MAX(R_E_C_N_O_)+1 AS RECNO FROM SL2010 ');
  DM.QUERYTEMP.OPEN;
  IF DM.QUERYTEMP.FIELDBYNAME('RECNO').AsInteger = 0 THEN
  BEGIN
    V_RECNO := 1;
  END ELSE
  BEGIN
    V_RECNO := DM.QUERYTEMP.FIELDBYNAME('RECNO').AsInteger;
  END;

  //FAZ O SELECT NA TABELA DE ITENS DE PEDIDOS
  DM.QITENSPEDIDO.SQL.Add('SELECT CHAVE, FILIAL, NPEDIDO, PRODUTO, DESCRICAO, QUANTIDADE, ');
  DM.QITENSPEDIDO.SQL.Add('PRECO_LIQUIDO, SUB_TOTAL, DESCONTO, ACRESCIMO, CODREPRESENTANTE, ITEM ');
  DM.QITENSPEDIDO.SQL.Add('FROM TBPALMITENSPEDIDO ');
  DM.QITENSPEDIDO.SQL.Add('WHERE FILIAL = ' + QUOTEDSTR(V_FILIAL));
  DM.QITENSPEDIDO.SQL.Add('AND NPEDIDO = ' + QUOTEDSTR(V_NPEDIDO));
  DM.QITENSPEDIDO.SQL.Add('AND CODREPRESENTANTE = ' + QUOTEDSTR(V_CODREPRESENTANTE));
  DM.QITENSPEDIDO.OPEN;

  //ATRIBUI O NUMERO DO ITEM
  V_ITEM := V_ITEM + 1;
  IF V_ITEM < 10 THEN
  BEGIN
    V_ITEM_AUX := '0' + INTTOSTR(V_ITEM);
  END;

  //ATRIBUI O COD DO PRODUTO
  V_PRODUTO := DM.QITENSPEDIDO.FIELDBYNAME('PRODUTO').AsString;

  //ATRIBUI A DESCRICAO DO PRODUTO
  V_DESCRICAO := DM.QITENSPEDIDO.FIELDBYNAME('DESCRICAO').AsString;

  //ATRIBUI A QUANTIDADE DO PRODUTO
  V_QUANTIDADE := DM.QITENSPEDIDO.FIELDBYNAME('QUANTIDADE').AsString;

  //ATRIBUI O PREÇO LIQUIDO
  V_PRECO_LIQUIDO := DM.QITENSPEDIDO.FIELDBYNAME('PRECO_LIQUIDO').AsFloat;

  //ATRIBUI A BASE DO ICM
  V_BASEICM := DM.QITENSPEDIDO.FIELDBYNAME('PRECO_LIQUIDO').AsFloat;

  //ATRIBUI A TABELA
  V_TABELA := '1';

  //ATRIBUI A ALIQ
  //V_ALIQU01 := 0;
  //V_ALIQU02 := 0;

  //ATRIBUI O VALOR TOTAL DO PEDIDO
  V_VALORTOT := DM.QITENSPEDIDO.FIELDBYNAME('PRECO_LIQUIDO').AsFloat * DM.QITENSPEDIDO.FIELDBYNAME('PRECO_LIQUIDO').AsFloat;

  //ATRIBUI O UM DO PRODUTO E A TES
  DM.QUERYTEMP.SQL.Clear;
  DM.QUERYTEMP.SQL.Add('SELECT B1_UM AS V_UM, B1_TS AS V_TES, B1_PICM AS V_VALICM FROM SB1010 ');
  DM.QUERYTEMP.SQL.Add('WHERE B1_COD = ' + QUOTEDSTR(DM.QITENSPEDIDO.FIELDBYNAME('PRODUTO').AsString));
  DM.QUERYTEMP.OPEN;

  //ATRIBUI O V_UM
  V_UM := DM.QUERYTEMP.FIELDBYNAME('V_UM').AsString;

  //ATRIBUI O V_TES
  V_TES := DM.QUERYTEMP.FIELDBYNAME('V_TES').AsString;

  //ATRIBUI O V_VALICM
  V_VALICM := DM.QUERYTEMP.FIELDBYNAME('V_VALICM').AsFloat;

  //FAZ O CALCULO NO VALOR DO ICM
  IF V_VALICM = 0 THEN
  BEGIN
    V_VALICM := 18;
  END;
  V_TOTVALICM := (V_VALICM /100 * V_BASEICM);

  //ATRIBUI O COD.FISCAL
  DM.QUERYTEMP.SQL.Clear;
  DM.QUERYTEMP.SQL.Add('SELECT F4_CF AS V_CF FROM SF4010 WHERE F4_CODIGO = ' + QUOTEDSTR(V_TES));
  DM.QUERYTEMP.OPEN;

  //ATRIBUI O COD. FISCAL
  V_CF := DM.QUERYTEMP.FIELDBYNAME('V_CF').AsString;

  //CALCULA O VALOR DO DESCONTO
  //V_SUB_TOTAL := DM.QITENSPEDIDO.FIELDBYNAME('SUB_TOTAL').AsFloat;
  //V_DESCONTO := DM.QITENSPEDIDO.FIELDBYNAME('DESCONTO').AsFloat;
  V_VALDESCONTO := (DM.QITENSPEDIDO.FIELDBYNAME('QUANTIDADE').AsFloat * DM.QITENSPEDIDO.FIELDBYNAME('PRECO_LIQUIDO').AsFloat) - DM.QITENSPEDIDO.FIELDBYNAME('SUB_TOTAL').AsFloat;

  DM.QUERYTEMP.SQL.Clear;
  DM.QUERYTEMP.SQL.Add('INSERT INTO SL2010(L2_NUM,L2_PRODUTO,L2_ITEM,L2_DESCRI,L2_QUANT,L2_VRUNIT,L2_VLRITEM, ');
  DM.QUERYTEMP.SQL.Add('L2_LOCAL,L2_UM,L2_DESC,L2_VALDESC,L2_TES,L2_CF,L2_VALIPI,L2_VALICM,L2_VALISS, ');
  DM.QUERYTEMP.SQL.Add('L2_BASEICM,L2_TABELA,L2_EMISSAO,L2_PRCTAB,L2_GRADE, ');
  DM.QUERYTEMP.SQL.Add('L2_FILIAL,L2_VEND,R_E_C_N_O_) ');

  DM.QUERYTEMP.SQL.Add('VALUES(:V_NPEDIDO,:V_PRODUTO,:V_ITEM_AUX,:V_DESCRICAO,:V_QUANTIDADE,:V_PRECO_LIQUIDO,:V_VALORTOT, ');
  DM.QUERYTEMP.SQL.Add(QUOTEDSTR('01') + ',:V_UM,0,:V_VALDESCONTO,:V_TES,:V_CF,0,:V_TOTVALICM,0, ');
  DM.QUERYTEMP.SQL.Add(':V_BASEICM,:V_TABELA,:V_EMISSAO,:V_PRECO_LIQUIDO,' + QUOTEDSTR('N') + ', ');
  DM.QUERYTEMP.SQL.Add(':V_FILIAL,:V_CODREPRESENTANTE,:V_RECNO ');
  DM.QUERYTEMP.SQL.Add(') ');

  DM.QUERYTEMP.ParamByName('V_NPEDIDO').AsString := V_NPEDIDO;
  DM.QUERYTEMP.ParamByName('V_PRODUTO').AsString := V_PRODUTO;
  DM.QUERYTEMP.ParamByName('V_ITEM_AUX').AsString := V_ITEM_AUX;
  DM.QUERYTEMP.ParamByName('V_DESCRICAO').AsString := V_DESCRICAO;
  DM.QUERYTEMP.ParamByName('V_QUANTIDADE').AsString := V_QUANTIDADE;
  DM.QUERYTEMP.ParamByName('V_PRECO_LIQUIDO').AsFloat := V_PRECO_LIQUIDO;
  DM.QUERYTEMP.ParamByName('V_VALORTOT').AsFloat := V_VALORTOT;
  DM.QUERYTEMP.ParamByName('V_UM').AsString := V_UM;
  DM.QUERYTEMP.ParamByName('V_VALDESCONTO').AsFloat := V_VALDESCONTO;
  DM.QUERYTEMP.ParamByName('V_TES').AsString := V_TES;
  DM.QUERYTEMP.ParamByName('V_CF').AsString := V_CF;
  DM.QUERYTEMP.ParamByName('V_TOTVALICM').AsFloat := V_TOTVALICM;
  DM.QUERYTEMP.ParamByName('V_BASEICM').AsFloat := V_BASEICM;
  DM.QUERYTEMP.ParamByName('V_TABELA').AsString := V_TABELA;
  DM.QUERYTEMP.ParamByName('V_EMISSAO').AsString := V_EMISSAO;
  DM.QUERYTEMP.ParamByName('V_PRECO_LIQUIDO').AsFloat := V_PRECO_LIQUIDO;
  DM.QUERYTEMP.ParamByName('V_FILIAL').AsString := V_FILIAL;
  DM.QUERYTEMP.ParamByName('V_CODREPRESENTANTE').AsString := V_CODREPRESENTANTE;
  DM.QUERYTEMP.ParamByName('V_RECNO').AsInteger := V_RECNO;
  DM.QUERYTEMP.ExecSQL;