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;