  ;** FT_PROG  *****************************************************************
;*  Rotina de faturamento de requisi‡Æo de estoque                             *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 25/01/2019 por Anivel Augusto Rodrigues
;Ultima Alteracao:   /  /     por 
;Motivo Alteracao: 

;*******************************************************************************
;* Faturamento de Ordem de Expedicao              
;*******************************************************************************
Proc PegaProgramacao()
Private OK, PED_ORC_FAT, SEQI, Atualiza, ExpedOk, cc, ccfp, ccd, Item, qtdp, qtde,NUMOE,
        CODIGO, QUANTI, regpfacri

Moveto "FaturaI"
End
SEQI=[Item da Of]


OK=""
PED_ORC_FATURAR=""
PED_ORC_FAT=""

ShowDialog "Programa‡Æo" proc "OPCAO" @ 09,20 height 03 width 30
  @ 0,1 ?? "N§ Programa‡Æo:"
  Accept @ 00,16 width 9 "A6" Picture "#*#" tag "PED_ORC_FATURAR" to PED_ORC_FATURAR

  PushButton @ 02,06 Width 10 "Sim"     OK Value "Sim" Tag "Sim" to Button
  PushButton @ 02,15 Width 10 "N„o" CANCEL Value "Nao" Tag "N„o" to Button
Enddialog
If OK="N"
   Then Return
EndIf
PED_ORC_FATURAR=PED_ORC_FAT
PED_ORC_FATURAR=AlinhM(PED_ORC_FATURAR,6)

Moveto "FaturaC"
UnLockRecord
FormKey
IsLockRecord()

NUMOE = ""

{TableAdd} {\\sistemas\\faccao\\pfacc}
{TableAdd} {\\sistemas\\faccao\\pfacri}

ExpedOk=False
Moveto "\\sistemas\\faccao\\pfacc"
Moveto [Numero_Programacao] 
Locate PED_ORC_FATURAR
If Retval
   Then         
        MSG="Program‡Æo: // //"
        MSG=MSG+Completa("No "+[Numero_Programacao]+" de "+Format("D13",[Data_Programacao])+" - "+[Destino_Producao]+" - "+[Nome Fantasia EmitDest],60," ")+"//"

        If ConfGeral(MSG+"Confirma faturar esta programa‡Æo ?")
           Then ExpedOk=True
        EndIf
   else         
        Mensagem("Programa‡Æo nÆo localizada "+PED_ORC_FATURAR+" !")
EndIf

If Not ExpedOk
   Then 
        Do_It!
        Moveto "\\sistemas\\faccao\\pfacc"     ClearImage
        Moveto "\\sistemas\\faccao\\pfacri"    ClearImage
        Moveto "FaturaC"
        CoEditKey
        FormKey
        IsLockRecord()
        Return
EndIf

Usando_Expedicao=True
While True
	Moveto "\\sistemas\\faccao\\pfacri"
	Moveto [Numero_Programacao]
	Locate PED_ORC_FATURAR
	If Not Retval
	   Then Mensagem("Programa‡Æo "+PED_ORC_FATURAR+" sem itens !// Verificar !")
	        QuitLoop 
	   Else 
          LimpaRodape(0)
          Aguarde("Carregando itens")

	        ExpedOk=True
	        While [Numero_Programacao]=PED_ORC_FATURAR
            copytoarray regpfacri

            CHAVEI=1
            
            ExpedOk=True
            
            Moveto "FaturaI"
            While True
              End
              SEQI=SEQI+1
              If SEQI>900
                 Then Mensagem("Numero Maximo de Itens 900 permitidos !")
                      ExpedOk=False
                      QuitLoop
              EndIf
              Down
              [Numero da Of]=[FaturaC->Numero da Of]
              [Item da Of  ]=SEQI
              If Not IsLockRecord()
                 Then QuitLoop
                 Else Del
              EndIf   
            EndWhile
            If Not ExpedOk
               Then QuitLoop
            EndIf   
          
			      getrecord "\\sistemas\\estoque\\itens" regpfacri["Codigo do Item"] to regitens
			      if not retval
			         then 
                    Mensagem("Item: "+regpfacri["Codigo do Item"]+" "+regpfacri["Descricao do Item"]+", nÆo cadastrado !")
                    del
			         else regpfacri["Codigo do Item"] = MudaCodigoPara(regpfacri["Codigo do Item"],"S")
                    [Codigo do Item ]=regpfacri["Codigo do Item"       ]
                    [Quantidade     ]=regpfacri["Quantidade Programada"]
                  
                    VSD_I_Codigo_Item=[Codigo do Item]
                    Pega_Preco("Novo")
                  
                    If Not CHECA_ESTOQUE() Or [Preco Unitario]<=0
                       Then 
                  		      If [Preco Unitario]<=0
                               Then MSG="Item: "+[Codigo do Item]+" - "+SubStr([Descricao do Item ],1,30)
                                    Mensagem(MSG+"// //Item sem tabela de pre‡o !")
                            EndIf
                            Del
                  		 Else
                            GetRecord "\\Sistemas\\Estoque\\Iten_Com" regpfacri["Codigo do Item"] To REG_ITEMCOMP
                            If Not RetVal
                               Then Mensagem("Item "+regpfacri["Codigo do Item"]+" n„o localizado na tabela de complementos!")
                                    QuitLoop
                            EndIf
                  		 
                  		      Ajusta_Dados_Item()
                  		      Registro_Item("Ler")
                            CalcularPrecoTotal_Item()
                            Registro_Item("Gravar")
                            
                            ESTOQUE()
                    EndIf
                  
                    SaveTables
            endif

            FATUROU_OE=True

            Moveto "\\sistemas\\faccao\\pfacri"
            skip
            if eot() then quitloop endif
            
          EndWhile
	    
	EndIf
	QuitLoop
EndWhile

Moveto "FaturaC"
Do_It!

Moveto "\\sistemas\\faccao\\pfacc"     ClearImage
Moveto "\\sistemas\\faccao\\pfacri"    ClearImage
Moveto "FaturaC"
CoEditKey
FormKey
IsLockRecord()

Usando_Expedicao=False

LimpaRodape(0)
EndProc   ;  (PegaProgramacao)

FATUROU_OE=False
PegaProgramacao()
Release Procs Expedicao
