;** FT_PEF *********************************************************************
;*  Rotina de Controle de Pedido para Entrega Futura                           *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 04/03/2013 por Anivel Augusto Rodrigues
;Ultima Alteracao: 02/04/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes casa fonseca                                    
;Ultima Alteracao: 20/05/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes pegar destinaca‡o e condi‡Æo de pagto pela descricao
;Ultima Alteracao: 17/09/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Peidido existente
;Ultima Alteracao: 04/11/2013 por Bruno Carvalho
;Motivo Alteracao: Ajustes PedidoEF() nÆo estava movendo para PedidoC
;Ultima Alteracao: 15/06/2016 por Bruno Carvalho 
;Motivo Alteracao: Adicionado Pega_Endereco() e ajustado dados do endere‡o
;Ultima Alteracao: 29/09/2016 por Bruno Carvalho 
;Motivo Alteracao: Alterado NUMEROP -> NOTAFISC na proc PedidoEF(), pois nÆo havia essa vari vel "NUMEROP" setada
;Ultima Alteracao: 18/10/2017 por Kamila Gomes
;Motivo Alteracao: Comentada a linha [Condicao de Pagamento   ]=[FaturaI->Condicao de Pagamento]
;Ultima Alteracao: 04/02/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes pedido de compra      
;Ultima Alteracao: 03/04/2019 por Bruno Carvalho
;Motivo Alteracao: Corre‡Æo [FaturaI->Numero_Pedido_Compr] -> [FaturaI->Numero_Pedido_Compra]
;                           [FaturaI->Item_Pedido_Compr  ] -> [FaturaI->Item_Pedido_Compra  ]
;Ultima Alteracao: 08/10/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes release vars e procs   
  
;*******************************************************************************
;* Rotina para Impressao do Cabecalho                                          *
;*******************************************************************************
Proc Pega_Endereco(PARAM)
Private PARAM

VSD_E_Endereco=""
VSD_E_Bairro  =""
VSD_E_CEP     =""
VSD_E_Cidade  =""
VSD_E_UF      =""

VSD_C_Endereco=""
VSD_C_Bairro  =""
VSD_C_CEP     =""
VSD_C_Cidade  =""
VSD_C_UF      =""    

GetRecord "\\Sistemas\\Vendas\\FaturaCC" PARAM To REG_ENTCOB
If RetVal
   Then VSD_E_Endereco=REG_ENTCOB["Endereco de Entrega"]
        VSD_E_Bairro  =REG_ENTCOB["Bairro de Entrega"]
        VSD_E_CEP     =REG_ENTCOB["CEP de Entrega"]
        VSD_E_Cidade  =REG_ENTCOB["Cidade de Entrega"]
        VSD_E_UF      =REG_ENTCOB["UF de Entrega"]

        VSD_C_Endereco=REG_ENTCOB["Endereco de Cobranca"]
        VSD_C_Bairro  =REG_ENTCOB["Bairro de Cobranca"]
        VSD_C_CEP     =REG_ENTCOB["CEP de Cobranca"]
        VSD_C_Cidade  =REG_ENTCOB["Cidade de Cobranca"]
        VSD_C_UF      =REG_ENTCOB["UF de Cobranca"] 
EndIf   
 
EndProc ;Pega_Endereco() 

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

;--- Estorna PedidoC/PedidoI/PedidoV -------------------------------------------
PED_ENCONTRADO=False

Moveto "PedidoC"
Moveto [Numero do Pedido]
Locate NOTAFISC
If RetVal
   Then 
        itfat=false
        Moveto "PedidoI"
        Moveto [Numero do Pedido]
        Locate [PedidoC->Numero do Pedido]
        If RetVal
           Then While [Numero do Pedido]=[PedidoC->Numero do Pedido]
                  If Not IsBlank([Quantidade Faturada]) And
                     [Quantidade Faturada]<>0 
                     Then itfat=true
                  EndIf   
                  Skip
                  If EOT() Then QuitLoop EndIf
                EndWhile
        EndIf

        Moveto "PedidoC"
        If [Codigo da Empresa        ]=[FaturaC->Codigo da Empresa        ] And
           [Data de Emissao          ]=[FaturaC->Data de Emissao          ] And
           [Codigo                   ]=[FaturaC->Codigo                   ] And
           [Situacao do Pedido       ]="ABERTO"                             And
           Not itfat
           Then PED_ENCONTRADO=True
           Else Mensagem("Pedido de entregue futura j  existe ! //Verificar pedido gerado, estorno nÆo foi realizado !")
                Return
        EndIf

EndIf

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

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

        Moveto "PedidoC"
        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 entregue! //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                   ]

codd=""
codp=""
Moveto [Codigo da Destinacao]
Ativa_Lookup()
Moveto [Descricao da Destinacao]
Locate "SIMPLES REMESSA ENTR.FUTURA"
If RetVal
   Then codd=[Codigo da Destinacao]
EndIf 
KeyPress "ESC"   

Moveto [Condicao de Pagamento]
Ativa_Lookup()
Moveto [Descricao CondPagto]
Locate "OUTROS"
If RetVal
   Then codp=[Condicao de Pagamento]
   Else Locate " OUTROS"
        If RetVal
           Then codp=[Condicao de Pagamento]
        EndIf
EndIf 
KeyPress "ESC"   

Pega_Endereco([FaturaC->Numero da OF])

[Codigo da Destinacao     ]=codd
[Condicao de Pagamento    ]=codp
[Forma de Pagamento       ]="OU"
[Codigo do Representante  ]=[FaturaC->Codigo do Representante  ]
[Codigo da Tabela         ]=[FaturaC->Codigo da Tabela         ]

[Endereco de Entrega      ]=VSD_E_Endereco
[Bairro de Entrega        ]=VSD_E_Bairro
[CEP de Entrega           ]=VSD_E_CEP
[Cidade de Entrega        ]=VSD_E_Cidade
[UF de Entrega            ]=VSD_E_UF

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

[Situacao do Pedido       ]="ABERTO"

[Valor Mercadoria         ] = [FaturaC->Valor Mercadoria         ]
[Valor Nota Fiscal        ] = [FaturaC->Valor Mercadoria         ]

[Observacao do Pedido     ] = [FaturaC->Observacao na Nota Fiscal]
[Comissao do Representante] =BlankNum()

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
  [Item do Pedido          ]=[FaturaI->Item da OF           ]
  [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 Pagamento   ]=[FaturaI->Condicao de Pagamento]
  
  [Numero_Pedido_Compra    ]=[FaturaI->Numero_Pedido_Compra ]
  [Item_Pedido_Compra      ]=[FaturaI->Item_Pedido_Compra   ]
  
  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 vars VSD_C_Endereco, VSD_C_Bairro, VSD_C_CEP, VSD_C_Cidade, VSD_C_UF,    
             VSD_E_Endereco, VSD_E_Bairro, VSD_E_CEP, VSD_E_Cidade, VSD_E_UF    

Release Procs PedidoEF, Pega_Endereco
