;** FT_EF **********************************************************************
;*  Rotina de Controle de Entrega Futura                                       *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 04/03/2013 por Anivel Augusto Rodrigues
;Ultima Alteracao:   /  /     por 
;Motivo Alteracao: 

;*******************************************************************************
;*  Rotina de Controle de Pendencias                                           *
;*******************************************************************************
Proc PedidoEF()
Private NUMEROP, PED_ENCONTRADO,itfat  

;--- Estorna PedidoC/PedidoI/PedidoV -------------------------------------------
Moveto "PedidoC"
Moveto [Numero do Pedido]
Locate NOTAFISC
If RetVal
   Then 
        If [Situacao do Pedido]<>"ABERTO"
           Then Mensagem("J  existe pedido de entrege! //Verificar pedido e o estorno.// Pedido nĈo foi gerado !")
                Return
        EndIf

        itfat=false
        Moveto "PedidoI"
        Moveto [Numero do Pedido]
        Locate NUMEROP
        If RetVal
           Then While [Numero do Pedido]=NUMEROP
                  If [Quantidade Faturada]>0 Or
                     [Quantidade Faturada]<0 
                     Then itfat=true
                  Skip
                  If EOT() Then QuitLoop EndIf
                EndWhile
        EndIf
        If itfat
           Then Mensagem("J  existe item do pedido entrege! //Verificar pedido e o estorno.// Pedido nĈo foi gerado !")
                Return
        EndIf
                 
        PED_ENCONTRADO=True
   Else PED_ENCONTRADO=False
EndIf

If PED_ENCONTRADO
   Then NUMEROP=[Numero do Pedido]

        Moveto "PedidoI"
        Moveto [Numero do Pedido]
        Locate NUMEROP
        If RetVal
           Then While [Numero do Pedido]=NUMEROP
                  Del
                EndWhile
        EndIf
        Moveto "PedidoV"
        Moveto [Numero do Pedido]
        Locate NUMEROP
        If RetVal
           Then While [Numero do Pedido]=NUMEROP
                  Del
                EndWhile
        EndIf

        Moveto "PendentC"
        Del
EndIf

;--- Cria PedidoC --------------------------------------------------------------
Moveto "PedidoC"
While True
 End
 Down
 [Numero do Pedido        ]=NOTAFISC
 If Not IsLockRecord()
    Then Moveto [Numero do Pedido]
         Locate NOTAFISC
         QuitLoop
    Else Del
         Mensagem("Existe pedido de entrege! //Verificar pedido e o estorno.// Pedido nĈo foi gerado !")
         Return
 EndIf
EndWhile
[Codigo da Empresa        ]=[FaturaC->Codigo da Empresa        ]
[Data de Emissao          ]=[FaturaC->Data de Emissao          ]
[Data de Entrega          ]=[FaturaC->Data de Emissao          ]
[Codigo                   ]=[FaturaC->Codigo                   ]
Switch
  Case SYS_CODIGO_CLIENTE="0000": [Codigo da Destinacao     ]=""
                                  [Condicao de Pagto        ]=""
                                  [Forma de Pagamento       ]="OU"
EndSwitch
[Codigo do Representante  ]=[FaturaC->Codigo do Representante  ]
[Codigo da Tabela         ]=[FaturaC->Codigo da Tabela         ]

[Endereco de Entrega      ]=
[Bairro de Entrega        ]=
[CEP de Entrega           ]=
[UF de Entrega            ]=
[Cidade de Entrega        ]=

[Codigo da Transportadora ]=[FaturaC->Codigo da Transportadora ]
[Frete por Conta          ]=[FaturaC->Frete por Conta          ]

[Situacao                 ]="ABERTO"
UnLockrecord

;--- Cria PedidoI _-------------------------------------------------------------
Moveto "FaturaI"
Moveto [Numero da OF]
Locate [FaturaC->Numero da OF]
While [Numero da OF]=[FaturaC->Numero da OF]

  Moveto "PedidoI"
  End
  Down

  [Numero do Pedido        ]=NOTAFISC
  [Codigo do Item          ]=[FaturaI->Codigo do Item       ]
  [Quantidade              ]=[FaturaI->Quantidade           ]
  [Preco Unitario          ]=[FaturaI->Preco Unitario       ]
  [Preco Unitario Tabela   ]=[FaturaI->Preco Unitario Tabela]
  [Preco Total             ]=[FaturaI->Preco Total          ]

  [Codigo da Tabela        ]=[FaturaI->Codigo da Tabela     ]
  [Condicao de Pagto       ]=[FaturaI->Condicao de Pagto    ]
  UnLockrecord

  Moveto "FaturaI"
  Skip
  If EOT() Then QuitLoop EndIf
EndWhile

Moveto "FaturaC"

EndProc

;--- Rotina Principal ----------------------------------------------------------
Aguarde("Atualizando ENTREGA FUTURA "+Opcaoc+" "+NOTAFISC)

{TableAdd} {PedidoC}
{TableAdd} {PedidoI}
{TableAdd} {PedidoV}
PedidoEF()
Do_It!
Moveto "PedidoC" ClearImage
Moveto "PedidoI" ClearImage
Moveto "PedidoV" ClearImage

Moveto "FaturaC" CoEditKey

Release Procs PedidoEF
