;** NotaCons *******************************************************************
;*  Consulta de Nota Fiscal                                                    *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 15/06/2011 por Anivel Augusto Rodrigues
;Ultima Alteracao: 31/07/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes para ser exibido a tela do transportador, frete e volumes
;Ultima Alteracao: 19/03/2013 por Bruno Carvalho
;Motivo Alteracao: Comentado a linha onde utilizava o campo/variavel "NBM"
;Ultima Alteracao: 07/12/2015 por Anivel Augusto Rodrigues
;Motivo Alteracao: exclusao referencia ao campo INSS
;Ultima Alteracao: 14/07/2017 por Bruno Carvalho
;Motivo Alteracao: Removido "NotaCF"
;Ultima Alteracao: 27/07/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes nÆo usar condi‡Æo pagamento por item
;Ultima Alteracao: 28/07/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes nÆo usar modelo no item 0003            
;Ultima Alteracao: 11/08/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado Soma_PrecoTotal() e ajustes no FORM p/ quando item for CANCELADO
;Ultima Alteracao: 28/08/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes logica e usando pela consulta
;Ultima Alteracao: 31/08/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes desconto item
;Ultima Alteracao: 18/09/2017 por Bruno Carvalho
;Motivo Alteracao: Ajustes ao executar Carrega_Tabelas(), verificando se tabela "NotaIDV" existe no diret¢rio de trabalho
;Ultima Alteracao: 11/10/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes pagina itens somaitens
;Ultima Alteracao: 25/10/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado na Digita‡Æo dos Itens Pedido_Compra e Item_Pedido_Compra *Apenas Visualiza‡Æo no ShowDialog
;Ultima Alteracao: 30/11/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog item      
;Ultima Alteracao: 14/05/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Registro_Item("Ler")+CalcularPrecoTotal_Item()

;*******************************************************************************
;* Rotina para Controlar Chave da Nota Fiscal                                  *
;*******************************************************************************
Proc CHAVEC()
INICIO_PAGINA=True
FACA_DIGITAC =True

VCITENS =BlankNum()
VSQTDE  =BlankNum()
VSVRMERC=BlankNum()

While True
  Moveto "Notac"
  End
  Moveto [Codigo da Empresa]
  
  If OPCAO_FORM="F"
     Then Down
     Else PgDn PgDn PgDn
  EndIf
  Moveto [Codigo da Empresa]

  SetaCorRegistro("Editar")
  While True
  
  MSGCAMPO=Field()
  
  If Field()="Codigo da Empresa" And Not IsBlank([Codigo da Empresa])
     Then MSGCAMPO="Empresa: "+[Nome Fantasia Empresa]
  EndIf

  
  If Field()="Codigo do Documento" Or
     Field()="Codigo da Empresa"
     Then TECLA="F1=Tabelas"
     Else TECLA="" 
  Endif
  
  AguardaTeclasPadrao()

  Switch
        Case RetVal=-33 : SemFuncoes()
        Case RetVal=-94 : MsgTeclasPadrao()
        Case RetVal="F1":
             If Field()="Codigo do Documento" Or
                Field()="Codigo da Empresa"
                Then CONSULTAF1()
             Endif
        Case RetVal="F3":
             If OPCAO_FORM="F"
                Then OPCAO_FORM="1"
                Else OPCAO_FORM="F"
             EndIf
             Del
             CHAVEC=5
             Return
        Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
             Del
             While True
               INICIO_PAGINA=True

               FACA_DIGITAC =True
               VCITENS =BlankNum()
               VSQTDE  =BlankNum()
               VSVRMERC=BlankNum()

               If OPCAO_FORM="F"
                  Then PAGINA("NotaC","MR")
                  Else PAGINA("NotaC","MT")
               EndIf
               Switch
                 Case EDITAR="S":
                      PickForm "1"
                      Echo Normal
                      Echo Off
                      CHAVEC=0
                      Controla_EdicaoC()
                 Case EXCLUIR="S":
                      UnLockRecord
                      FastMsg("Fun‡Æo nÆo permitida!")                       
                 OtherWise: QuitLoop
               EndSwitch
               If OPCAO_FORM="1"
                  Then PickForm "1"
                  Else PickForm "F"
               EndIf
               SetaPosForm()
             EndWhile
             QuitLoop
        Case Retval="ESC":
             If Field()="Codigo da Empresa"
                Then CHAVEC=9
                     Del
                     Return
                Else Left
             EndIf
        Case Retval="ENTER":
             If IsBlank([])
                Then Loop
             EndIf
             Switch
                  Case Field()="Codigo da Empresa":
                       EMPRESA=[Codigo da Empresa]
                       Moveto [Numero do Documento]
                  Case Field()="Numero do Documento":
                       []=ALINH()
                       NUMDOC=[Numero do Documento]
                       Moveto [Codigo do Documento]
                  Case Field()="Codigo do Documento":
                       SERIE =[Serie do Documento]
                       CODDOC=[Codigo do Documento]

                       ANT_EMPRESA=[Codigo da Empresa]
                       ANT_CDDOCTO=[Codigo do Documento]

                       Del
                       PickForm "1"
                       Moveto [Codigo da Empresa]
                       Locate EMPRESA,NUMDOC,SERIE
                       If Retval
                          Then CHAVEC=0
                               If Not IsLockRecord()
                                  Then Return
                               EndIf
                          Else FastMsg("Documento nÆo localizado, inser‡Æo nÆo permitida !")
                       EndIf
                       If OPCAO_FORM="F"
                          Then PickForm "F"
                       EndIf
                       QuitLoop
             EndSwitch
        EndSwitch
  EndWhile
EndWhile
EndProc   ; (ChaveC)

;*******************************************************************************
;* Rotina para Digitacao da Cabeca                                             *
;*******************************************************************************
Proc DigitaC()
FACA_CHAVEI   = True

Moveto "NotaC"
Moveto Field ncampop1
While True

      MSGCAMPO=""
      TECLA=" Esc=Retornar  F8=Observa‡„o  PgDn "
      Prompt TECLA

      Wait Field
           Message MSGCAMPO
           Until "ESC","PGDN","F8"

      Switch
      Case RetVal="PGDN":
           ncampop1=Field()
           QuitLoop
      Case Retval="F8":
           CampoAnt=Field()
           Edita_Memo("Observacao na Nota Fiscal",08,01,15,76,"Observa‡”es")
           Moveto Field CampoAnt
           Prompt TECLA
      Case Retval="ESC":
           CHAVEC=9
           QuitLoop
      EndSwitch
EndWhile
EndProc  ;(DigitaC)

;*******************************************************************************
;* Rotina para Localizar Item                                                  *
;*******************************************************************************
Proc Soma_PrecoTotal()

VSVRMERC = 0
VCITENS  = 0
VSQTDE   = 0

Moveto "NotaI"
Home
Scan
  If [Situacao_Item]<>"C"
     Then VCITENS  = VCITENS + 1
          VSVRMERC = VSVRMERC + [Preco Total]
          VSQTDE   = VSQTDE +   [Quantidade ]  
  EndIf
EndScan

EndProc ;Soma_PrecoTotal()

;*******************************************************************************
;* Rotina para Localizar Item                                                  *
;*******************************************************************************
Proc CHAVEI()

Moveto "NotaI"
FACA_DIGITAF  = True
While True
  Soma_PrecoTotal()
  Moveto [Item do Documento]
  End
  Down
  Moveto [Item do Documento]

  Opcao_Ver     = False
  SetaCorRegistro("Editar")
  While True                                      

    TECLA= " Esc=Retornar  F7=Paginar  F3=Ver ficha  PgDn/PgUp "
    Prompt TECLA
    Wait Field
         Until "ESC","F3","F7","HOME","UP","PGDN","PGUP"

    Switch
    Case RetVal="F3":
         Del
         Moveto [Item do Documento]
         If RecordStatus("New")
            Then MENSAGEM("Sem Item p/ ver !")
                 QuitLoop
         EndIf      
         Opcao_Ver=True
         CHAVEI=0
         Home
         SEQIT=[Item do Documento]
         Inicia_Registro()
         DigitaI()
         QuitLoop
    Case Retval="PGDN":
         Del
         CHAVEI=9
         Return
    Case Retval="PGUP" Or RetVal="ESC":
         Del
         CHAVEI=9
         FACA_CHAVEI =False
         FACA_DIGITAF=False
         Return
    Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
         Del
         While True
           FACA_DIGITAF  = True
           PAGINA("NotaI","MR")
           SEQIT=[Item do Documento]
           If EDITAR="S"
              Then CHAVEI=0
                   Controla_EdicaoI()
              Else If EXCLUIR="S"
                      Then UnLockRecord
                           FastMsg("Fun‡Æo nÆo permitida!")
                      Else QuitLoop
                   EndIf
           EndIf

           Soma_PrecoTotal()

           SetaPosForm()
         EndWhile
         QuitLoop
    EndSwitch
  EndWhile
EndWhile
EndProc   ; (ChaveI)

;*******************************************************************************
;* Rotina de Digitacao Dados do Item                                           *
;*******************************************************************************
Proc Item_Dialog(Disparo,Campo,Evento,Elemento)

TECLA=" Esc=Retornar  "
MSG_CAMPO=""
Temp=True

If INICIO_DIALOG
   Then Campo="I_Seq"
        INICIO_DIALOG=False
EndIf
If Opcao_Ver=True Then Campo="I_Seq" EndIf

If Disparo="OPEN"
   Then
        TiraSombraShowDialog()
EndIf        

If Disparo="EVENT" And DynArraySize(Evento)>0 And Evento["Type"]="KEY" Then

   Switch
     Case Opcao_Ver=True:
          Temp=False
          Switch
            Case Evento["KeyCode"] =  27:
                 CancelDialog
            Case Evento["KeyCode"] = -66:   
                 Edita_Memo("Informacoes_Adicionais",15,01,06,78,"Informa‡”es Adicionais do Item NFe")
                 VSD_I_InfAdic=[Informacoes_Adicionais]
            OtherWise:
              Mover_Reg=True
              Switch
                Case Evento["KeyCode"] = -71:
                     If AtFirst()
                        Then Mover_Reg=False Beep
                        Else Home
                     EndIf
                Case Evento["KeyCode"] = -79:
                     If AtLast()
                        Then Mover_Reg=False Beep
                        Else End
                     EndIf
                Case Evento["KeyCode"] = -73:
                     If AtFirst()
                        Then Mover_Reg=False Beep
                        Else Up
                     EndIf
                Case Evento["KeyCode"] = -81:
                     If AtLast()
                        Then Mover_Reg=False Beep
                        Else Down
                     EndIf
              EndSwitch
              If Mover_Reg=True
                 Then SEQIT=[Item do Documento]
                      Inicia_Registro()
              EndIf
          EndSwitch
     Case Evento["KeyCode"] = -66:  
          Edita_Memo("Informacoes_Adicionais",15,01,06,78,"Informa‡”es Adicionais do Item NFe")
          VSD_I_InfAdic=[Informacoes_Adicionais]
     Case Evento["KeyCode"] = 9 Or
          Evento["KeyCode"] = -15:
          Temp=False
     Case Evento["KeyCode"] = 27:
          CHAVEI=9
          CancelDialog
   EndSwitch
EndIf

SelectControl Campo
If Opcao_Ver=True
   Then TECLA=" Esc=Retornar  Home/End/PgDn/PgUp=Paginar  "
   Else TECLA=" Esc=Retornar  "
EndIf   

Switch
  OtherWise                             : MSGCAMPO=""
EndSwitch

@ 24,0 ?? TECLA+Spaces(80-Len(TECLA))
PaintCanvas Attribute 31 24,0,24,79
Message(MSGCAMPO)
Mouse Hide
RefreshDialog
Return TEMP
EndProc     ;  (Item_Dialog)

;*******************************************************************************
;* Rotina para Digitacao Item                                                  *
;*******************************************************************************
Proc DigitaI()

ImageRights ReadOnly

If [Situacao_Item]="C" 
   Then ITEM_CANCELADO = "*CANCELADO*"
   Else ITEM_CANCELADO = ""
EndIf
Switch
  Case Not IsBlank([NotaC->Numero do Pedido]):
       MSG_Pedido_Orcamento="Pedido"
  Case Not IsBlank([NotaC->Numero do Orcamento]):
       MSG_Pedido_Orcamento="Orcam."
  OtherWise:
       MSG_Pedido_Orcamento="......"
EndSwitch
MSGCAMPO=""
Showdialog "Dados do Item [      ]" Proc "Item_Dialog"
   Trigger "OPEN","ARRIVE"
    Key "F1","TAB","ReverseTab","ENTER","ESC","ClearArea","HOME","END","PGDN","PGUP","F3","F4","F7","F8","F9",-33,-6,-147
     @ 01,0 height 22 width 80

   Accept @ -01,43 Width 6 "A3" Tag "I_Seq" To VSD_I_SEQ

   Label  @ 00,02 MSG_Pedido_Orcamento For "I_Pedido"
   Accept @ 00,17 Width 09 "A06" picture "#*#" Tag "I_Pedido" to VSD_I_Pedido
   Label  @ 00,10 "/Item" For "I_Pedido_Item"
   Accept @ 00,27 Width 06 "N" picture "#*#" Tag "I_Pedido_Item" to VSD_I_Pedido_Item

   Label  @ 01,00 ">" For "I_Codigo_Item"
   Accept @ 02,00 Width 16 "A25" picture "!*!" Tag "I_Codigo_Item" to VSD_I_Codigo_Item
   
   Label  @ 01,17 "Descricao Item" For "I_Descricao_Item"
   Accept @ 02,17 Width 42 "A100" picture "!*!" Tag "I_Descricao_Item" to VSD_I_Descricao_Item
   
   Label  @ 01,57 "TI" For "I_Tipo_Item"
   Accept @ 02,58 Width 03 "A1" picture "&" Tag "I_Tipo_Item" to VSD_I_Tipo_Item

   @ 01,63 ?? ITEM_CANCELADO
   PaintCanvas Attribute 30 01, 63, 01, 75
   
   Label  @ 03,00 "[F8]Inf.Adic->" For "I_InfAdic"
   Accept @ 03,17 Width 44 "A100" picture "!*!" Tag "I_InfAdic" to VSD_I_InfAdic

   Label  @ 04,00 "Cor/Tecido" For "I_Codigo_Cor_Tecido"
   Accept @ 05,00 Width 07 "A4" picture "!*!" Tag "I_Codigo_Cor_Tecido" to VSD_I_Codigo_Cor_Tecido
   Accept @ 05,06 Width 23 "A20" picture "!*!" Tag "I_Descricao_Cor_Tecido" to VSD_I_Descricao_Cor_Tecido
   Label  @ 04,30 "TM" For "I_Tamanho"
   Accept @ 05,30 Width 05 "A2" picture "!*!" Tag "I_Tamanho" to VSD_I_Tamanho
   Label  @ 04,42 "Tabela" For "I_Tabela"
   Accept @ 05,42 Width 08 "A5" picture "!*!" Tag "I_Tabela" to VSD_I_Tabela
 
   Label  @ 04,53 "Pedido Compra" For "I_Pedido_Compra"
   Accept @ 05,54 Width 16 "A15" picture "!*!" Tag "I_Pedido_Compra" to VSD_I_Pedido_Compra
   Label  @ 04,70 "Item PC" For "I_Item_Pedido_Compra"
   Accept @ 05,70 Width 08 "S"               Tag "I_Item_Pedido_Compra" to VSD_I_Item_Pedido_Compra
 
   Label  @ 06,00 "Quantidade" For "I_Quantidade"
   Accept @ 07,00 Width 11 "N" picture "#*#.[###]" Tag "I_Quantidade" to VSD_I_Quantidade
   Label  @ 06,11 "UN" For "I_UN_Item"
   Accept @ 07,11 Width 05 "A2" picture "!*!" Tag "I_UN_Item" to VSD_I_UN_Item                               
   Label  @ 06,16 "Pr.Unit rio" For "I_Preco_Unitario"
	 Accept @ 07,17 Width 12 "N" picture "#*#.[######]" Tag "I_Preco_Unitario" to VSD_I_Preco_Unitario
   Label  @ 06,30 "Pr.Bruto" For "I_Preco_Bruto"
   Accept @ 07,30 Width 11 "$" picture "#*#.[##]" Tag "I_Preco_Bruto" to VSD_I_Preco_Bruto
   Label  @ 06,42 "?Desconto" For "I_Tipo_Desconto_Item"
   Accept @ 07,42 Width  4 "A1"  picture "U,T" Tag "I_Tipo_Desconto_Item" to VSD_I_Tipo_Desconto_Item          
   Accept @ 07,45 Width 11 "A08" picture "!*!" Tag "I_Desconto_Descricao" to VSD_I_Desconto_Descricao
   Label  @ 06,54 "Vr.Desconto" For "I_Valor_Desconto_Item"
   Accept @ 07,56 Width 10 "$" picture "#*#.[##]" Tag "I_Valor_Desconto_Item" to VSD_I_Valor_Desconto_Item
   Label  @ 06,67 "Pr.L¡quido" For "I_Preco_Total"
   Accept @ 07,67 Width 11 "$" picture "#*#.[##]" Tag "I_Preco_Total" to VSD_I_Preco_Total

   Label  @ 08,00 "CtUnit rio" For "I_Custo_Unitario"
   Accept @ 09,00 Width 11 "$" picture "#*#.[#####]" Tag "I_Custo_Unitario" to VSD_I_Custo_Unitario
   Label  @ 08,16 "Pr.Tabela" For "I_Preco_Tabela"
   Accept @ 09,17 Width 12 "$" picture "#*#.[##]" Tag "I_Preco_Tabela" to VSD_I_Preco_Tabela
   Label  @ 08,42 "%Comiss„o" For "I_Comissao_Item"
   Accept @ 09,42 Width 11 "N" picture "#*#.[###]" Tag "I_Comissao_Item" to VSD_I_Comissao_Item

   PaintCanvas Attribute 124 02, 61, 03, 77

   @ 11,00 ?? "Impostos CST    %Red    Aliq.  BC        Valor"
                                 
   Label  @ 12,00 " CSOSN" For "I_CSOSN"
   Accept @ 12,08 Width 07 "A4" picture "####" Tag "I_CSOSN" to VSD_I_CSOSN
   PaintCanvas Attribute 112 12, 15, 12, 22
   Accept @ 12,23 Width 08 "N" picture "#*#.[##]" Tag "I_ACSOSN" to VSD_I_ACSOSN
   PaintCanvas Attribute 112 12, 29, 12, 49
   Accept @ 12,40 Width 11 "$" picture "#*#.[##]" Tag "I_Valor_CSOSN" to VSD_I_Valor_CSOSN

   Label  @ 13,00 "  ICMS" For "I_CST_Item"
   Accept @ 13,08 Width 07 "A3" picture "!*!"        Tag "I_CST_Item"    to VSD_I_CST_Item   
   Accept @ 13,15 Width 10 "N"  picture "#*#.[####]" Tag "I_RBC_ICMS"    to VSD_I_RBC_ICMS
   Accept @ 13,23 Width 08 "N"  picture "#*#.[##]"   Tag "I_AICMS"       to VSD_I_AICMS
   Accept @ 13,30 Width 11 "$"  picture "#*#.[##]"   Tag "I_BC_ICMS"     to VSD_I_BC_ICMS     
   Accept @ 13,40 Width 11 "$"  picture "#*#.[##]"   Tag "I_Valor_ICMS"  to VSD_I_Valor_ICMS

   Label  @ 14,00 "MVA/ST" For "I_AST"
   Accept @ 14,08 Width 08 "N"  picture "#*#.[##]"   Tag "I_MVA"         to VSD_I_MVA
   Accept @ 14,15 Width 10 "N"  picture "#*#.[####]" Tag "I_RBC_ST"      to VSD_I_RBC_ST
   Accept @ 14,23 Width 08 "N"  picture "#*#.[##]"   Tag "I_AST"         to VSD_I_AST     
   Accept @ 14,30 Width 11 "$"  picture "#*#.[##]"   Tag "I_BC_ST"       to VSD_I_BC_ST  
   Accept @ 14,40 Width 11 "$"  picture "#*#.[##]"   Tag "I_Valor_ST"    to VSD_I_Valor_ST

   Label  @ 15,00 "   IPI" For "I_CST_IPI"
   Accept @ 15,08 Width 07 "A2" picture "!*!"        Tag "I_CST_IPI"     to VSD_I_CST_IPI  
   Accept @ 15,15 Width 10 "A2" picture "#*#.[####]" Tag "I_RBC_IPI"     to VSD_I_RBC_IPI
   Accept @ 15,23 Width 08 "N"  picture "#*#.[##]"   Tag "I_AIPI"        to VSD_I_AIPI
   Accept @ 15,30 Width 11 "$"  picture "#*#.[##]"   Tag "I_BC_IPI"      to VSD_I_BC_IPI  
   Accept @ 15,40 Width 11 "$"  picture "#*#.[##]"   Tag "I_Valor_IPI"   to VSD_I_Valor_IPI

   Label  @ 16,00 " ISSQN" For "I_TISSQN"
   Accept @ 16,08 Width 07 "A1" picture "D,N,I,S,R"  Tag "I_TISSQN"       to VSD_I_TISSQN 
   Accept @ 16,15 Width 10 "A2" picture "#*#.[####]" Tag "I_RBC_ISSQN"    to VSD_I_RBC_ISSQN
   Accept @ 16,23 Width 08 "N"  picture "#*#.[##]"   Tag "I_AISSQN"       to VSD_I_AISSQN
   Accept @ 16,30 Width 11 "$"  picture "#*#.[##]"   Tag "I_BC_ISSQN"     to VSD_I_BC_ISSQN  
   Accept @ 16,40 Width 11 "$"  picture "#*#.[##]"   Tag "I_Valor_ISSQN"  to VSD_I_Valor_ISSQN

   Label  @ 17,00 "   PIS" For "I_CST_PIS"    
   Accept @ 17,08 Width 07 "A2" picture "!*!"        Tag "I_CST_PIS"      to VSD_I_CST_PIS  
   Accept @ 17,15 Width 10 "A2" picture "#*#.[####]" Tag "I_RBC_PIS"      to VSD_I_RBC_PIS
   Accept @ 17,23 Width 08 "N"  picture "#*#.[##]"   Tag "I_APIS"         to VSD_I_APIS
   Accept @ 17,30 Width 11 "$"  picture "#*#.[##]"   Tag "I_BC_PIS"       to VSD_I_BC_PIS  
   Accept @ 17,40 Width 11 "$"  picture "#*#.[##]"   Tag "I_Valor_PIS"    to VSD_I_Valor_PIS

   Label  @ 18,00 "COFINS" For "I_CST_COFINS"   
   Accept @ 18,08 Width 07 "A2" picture "!*!"        Tag "I_CST_COFINS"   to VSD_I_CST_COFINS 
   Accept @ 18,15 Width 10 "A2" picture "#*#.[####]" Tag "I_RBC_COFINS"   to VSD_I_RBC_COFINS
   Accept @ 18,23 Width 08 "N"  picture "#*#.[##]"   Tag "I_ACOFINS"      to VSD_I_ACOFINS
   Accept @ 18,30 Width 11 "$"  picture "#*#.[##]"   Tag "I_BC_COFINS"    to VSD_I_BC_COFINS  
   Accept @ 18,40 Width 11 "$"  picture "#*#.[##]"   Tag "I_Valor_COFINS" to VSD_I_Valor_COFINS

   Label  @ 08,58 "CFOP" For "I_CFOP"
   Accept @ 09,58 Width 08 "A4" picture "####" Tag "I_CFOP" to VSD_I_CFOP
   Label  @ 08,67 "NCM" For "I_NCM"
   Accept @ 09,67 Width 11 "A8" picture "#*#" Tag "I_NCM" to VSD_I_NCM

   Label  @ 10,54 "Frete"    For "I_RAT_FRETE"
   Accept @ 11,55 Width 11 "$" picture "#*#.[##]" Tag "I_RAT_FRETE" to VSD_I_RAT_FRETE
   Label  @ 10,66 "Seguro"   For "I_RAT_SEGURO"
   Accept @ 11,67 Width 11 "$" picture "#*#.[##]" Tag "I_RAT_SEGURO" to VSD_I_RAT_SEGURO

   Label  @ 12,54 "Desconto" For "I_RAT_DESCONTO"
   Accept @ 13,55 Width 11 "$" picture "#*#.[##]" Tag "I_RAT_DESCONTO" to VSD_I_RAT_DESCONTO
   Label  @ 12,66 "OutDesp"  For "I_RAT_OUTDESP"
   Accept @ 13,67 Width 11 "$" picture "#*#.[##]" Tag "I_RAT_OUTDESP" to VSD_I_RAT_OUTDESP
   
   Label  @ 14,51 "VrIPIDevolvido"  For "I_Vr_IPI_Devolvido"
   Accept @ 15,52 width 15 "$" picture "#*#.[##]" Tag "I_Vr_IPI_Devolvido" to VSD_Vr_IPI_Devolvido
   Label  @ 14,67 "%IPIDevolv"  For "I_Porc_IPI_Devolvido"
   Accept @ 15,67 Width 11 "N" picture "#*#.[##]" Tag "I_Porc_IPI_Devolvido" to VSD_Porc_IPI_Devolvido

   Label  @ 16,52 "Servi‡o" For "I_CDSERV"
   Accept @ 17,52 Width 10 "N" picture "#*#" Tag "I_CDSERV" to VSD_I_CDSERV
   Label  @ 16,62 "Munic¡pio" For "I_MUNSERV"
   Accept @ 17,62 Width 12 "N" picture "#*#" Tag "I_MUNSERV" to VSD_I_MUNSERV
   Label  @ 16,73 "UF" For "I_UFSERV"
   Accept @ 17,73 Width 5  "A2" picture "!!" Tag "I_UFSERV" to VSD_I_UFSERV

   Label  @ 18,51 "QtdVol" For "I_Numero_Volumes"
   Accept @ 19,52 Width 07 "S" picture "#*#.[###]" Tag "I_Numero_Volumes" to VSD_I_Numero_Volumes
   Label  @ 18,58 "PesoLiq" For "I_Peso_Liquido"
   Accept @ 19,58 Width 10 "N" picture "#*#.[###]" Tag "I_Peso_Liquido" to VSD_I_Peso_Liquido
   Label  @ 18,68 "PesoEmb" For "I_Peso_Embalagem"
   Accept @ 19,68 Width 10 "N" picture "#*#.[###]" Tag "I_Peso_Embalagem" to VSD_I_Peso_Embalagem

Enddialog
Mouse Show
ImageRights
EndProc    ;  (DigitaI)


;*******************************************************************************
;* Rotina para Gravacao/Leitura do Item                                        *
;*******************************************************************************
Proc Registro_Item(Funcao_Registro)
Private Funcao_Registro
Switch
  Case Funcao_Registro="Ler":
       VSD_I_Seq                    =[Item do Documento         ]

       VSD_I_Pedido                 =[Numero Pedido_Orcamento   ]
       VSD_I_Pedido_Item            =[Item Pedido_Orcamento     ]

       VSD_I_Tipo_Item              =[Tipo do Item              ]
       VSD_I_Codigo_Item            =[Codigo do Item            ]
       VSD_I_Descricao_Item         =[Descricao do Item         ]

       VSD_I_Codigo_Cor_Tecido      =[Codigo da Cor_Tecido      ]
       VSD_I_Descricao_Cor_Tecido   =[Descricao da Cor_Tecido   ]
       VSD_I_Tamanho                =[Tamanho                   ]

       VSD_I_Quantidade             =[Quantidade                ]
       VSD_I_UN_Item                =[Unidade Fiscal            ]
       VSD_I_Preco_Unitario         =[Preco Unitario            ]
       VSD_I_Custo_Unitario         =[Custo Medio Unitario      ]
       VSD_I_Preco_Tabela           =[Preco Unitario Tabela     ]
       VSD_I_Preco_Total            =[Preco Total               ]

       VSD_I_Tipo_Desconto_Item     =[Tipo Desconto Item        ]
       VSD_I_Taxa_Desconto_Unitario =[Taxa Desconto Unitario    ]
       VSD_I_Valor_Desconto_Unitario=[Valor Desconto Unitario   ]
       VSD_I_Valor_Desconto_Item    =[Valor Desconto Item       ]

       CalcularPrecoTotal_Item()           

       VSD_I_CFOP                   =[CFO                       ]
       VSD_I_NCM                    =[NCM                       ]

       VSD_I_CST_Item               =[Tipo Tributacao           ]
       VSD_I_TICMS                  =[Tributacao de ICMS        ]
       VSD_I_RBC_ICMS               =[Aliquota Reduzida BCICMS  ]
       VSD_I_AICMS                  =[Aliquota de ICMS          ]
       VSD_I_BC_ICMS                =[ICMS_BC                   ]
       VSD_I_Valor_ICMS             =[Valor do ICMS             ]

       VSD_I_CSOSN                  =SubStr([Tipo Tributacao],1,1)+[CSOSN]
       VSD_I_ACSOSN                 =[ICMS_CredSN_Aliquota      ]    
       VSD_I_Valor_CSOSN            =[ICMS_CredSN_Valor         ]

       VSD_I_MVA                    =[MVA                       ]
       VSD_I_RBC_ST                 =[ICMS_ST_Aliquota Reduzida ]
       VSD_I_AST                    =[ICMS_ST_Aliquota          ]
       VSD_I_BC_ST                  =[ICMS_ST_BC                ]
       VSD_I_Valor_ST               =[ICMS_ST_Valor             ]
       
       VSD_I_CST_IPI                =[IPI_CST                   ]
       VSD_I_TIPI                   =[Tributacao de IPI         ]
       VSD_I_RBC_IPI                =[Aliquota Reduzida BCIPI   ]
       VSD_I_AIPI                   =[Aliquota de IPI           ]
       VSD_I_BC_IPI                 =[IPI_BC                    ]
       VSD_I_Valor_IPI              =[Valor do IPI              ]

       VSD_I_TISSQN                 =[Tributacao de ISSQN       ]
       VSD_I_AISSQN                 =[Aliquota de ISSQN         ]
       VSD_I_BC_ISSQN               =[ISSQN_BC                  ]
       VSD_I_Valor_ISSQN            =[Valor do ISSQN            ]
       VSD_I_CDSERV                 =[Codigo_Servico            ]   
       VSD_I_UFSERV                 =[ISSQN_UF                  ]   
       VSD_I_MUNSERV                =[ISSQN_Municipio           ]   

       VSD_I_TPIS                   =""                          
       VSD_I_CST_PIS                =[PIS_CST                   ]
       VSD_I_APIS                   =[PIS_Aliquota              ]
       VSD_I_BC_PIS                 =[PIS_BC                    ]
       VSD_I_Valor_PIS              =[PIS_Valor                 ]

       VSD_I_TCOFINS                =""                          
       VSD_I_CST_COFINS             =[COFINS_CST                ]
       VSD_I_ACOFINS                =[COFINS_Aliquota           ]
       VSD_I_BC_COFINS              =[COFINS_BC                 ]
       VSD_I_Valor_COFINS           =[COFINS_Valor              ]

       VSD_I_Numero_Volumes         =[Volumes                   ]
       VSD_I_Peso_Liquido           =[Peso Liquido              ]
       VSD_I_Peso_Embalagem         =[Peso Embalagem            ]
       VSD_I_Comissao_Item          =[Comissao do Item          ]
       VSD_I_Tabela                 =[Codigo da Tabela          ]

       VSD_I_InfAdic                =[Informacoes_Adicionais    ]
       VSD_I_Pedido_Compra          =[Numero_Pedido_Compra      ]
       VSD_I_Item_Pedido_Compra     =[Item_Pedido_Compra        ]
       
       VSD_I_RAT_FRETE              = [Valor Frete Total        ]
       VSD_I_RAT_SEGURO             = [Valor Seguro Total       ]
       VSD_I_RAT_DESCONTO           = [Valor Desconto Total     ]
       VSD_I_RAT_OUTDESP            = [Valor OutDesp Total      ]

       VSD_Porc_IPI_Devolvido       =[IPI Devolvido_Porcentagem ]
       VSD_Vr_IPI_Devolvido         =[IPI Devolvido_Valor       ]

EndSwitch
EndProc   ; (Registro_Item)

;*******************************************************************************
;* Rotina para Iniciar Registro                                                *
;*******************************************************************************
Proc Inicia_Registro()
INICIO_DIALOG=True
Moveto [Item do Documento]
Locate [NotaC->Codigo da Empresa],[NotaC->Numero do Documento],
       [NotaC->Serie do Documento],SEQIT
Registro_Item("Ler")

EndProc ; (Inicia_Registro)

;*******************************************************************************
;* Rotina para Confirmacao de Valores                                          *
;*******************************************************************************
Proc DIGITAF()
CHAVEF=0
CHAVEV=1

Moveto "NotaC"
Moveto Field ncampop2
While True

      MSGCAMPO=""
      TECLA=" Esc=Retornar  F8=Vencimentos  PgDn/PgUp"
      Prompt TECLA

      Wait Field
           Message MSGCAMPO
           Until "ESC","PGDN","PGUP","F8"

    Switch
      Case RetVal="F8":
           Moveto "NotaV"
           While True
               CHAVEV()
               If CHAVEV=9 Then QuitLoop EndIf
           EndWhile
           Moveto "NotaC"
           Moveto Field ncampop2
      Case RetVal="PGUP":
           CHAVEF=9
           QuitLoop
      Case RetVal="PGDN":
           QuitLoop
      Case RetVal="ESC":
           CHAVEF=9
           QuitLoop
    EndSwitch
EndWhile
EndProc   ; (DigitaF)

;*******************************************************************************
;* Rotina para Digitacao Cabeca 2¦ Pagina                                      *
;*******************************************************************************
Proc DIGITAD()
CHAVED=0

Moveto "NotaC"
Moveto Field ncampop3
While True

      MSGCAMPO=""
      TECLA=" Esc=Retornar  F8=Observa‡„o  PgDn/PgUp"
      Prompt TECLA

      Wait Field
           Message MSGCAMPO
           Until "ESC","PGDN","PGUP","F8"

    Switch
      Case RetVal="F8":
           CampoAnt=Field()
           Edita_Memo("Observacao na Nota Fiscal",08,01,15,76,"Observa‡”es")
           Moveto Field CampoAnt
           Prompt TECLA           
      Case RetVal="PGUP":
           CHAVED=9
           QuitLoop
      Case RetVal="PGDN":
           QuitLoop
      Case RetVal="ESC":
           CHAVED=9
           QuitLoop
    EndSwitch
EndWhile
EndProc  ;(DigitaD)

;*******************************************************************************
;* Rotina para Digitacao de Vencimentos                                        *
;*******************************************************************************
Proc ChaveV()
While True
  Moveto [Sequencia]
  End
  Down
  Moveto [Sequencia]

  SetaCorRegistro("Editar")
  While True

        TECLA= " Esc=Retornar  F7=Paginar  "

        Prompt TECLA

        Wait Field
             Until "ESC","ENTER","F7","HOME","UP","PGUP"

        Switch
        Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
             Del
             While True
               PAGINA("NotaV","MR")
               If EDITAR="S"
                  Then UnLockRecord
                       FastMsg("Fun‡Æo nÆo permitida!")
                  Else If EXCLUIR="S"
                          Then UnLockRecord
                               FastMsg("Fun‡Æo nÆo permitida!")
                          Else QuitLoop
                       EndIf
               EndIf
               SetaPosForm()
             EndWhile
             QuitLoop
        Case Retval="ESC":
             CHAVEV=9
             Del
             Return
        EndSwitch
  EndWhile
EndWhile
EndProc   ;  (ChaveV)

;*******************************************************************************
;* Rotina para Carregar Tabelas                                                *
;*******************************************************************************
Proc Closed Carrega_Tabelas()
UseVars AutoLib, ErrorProc, PARAM_CONSIGNACAO, PARAM_RELAT_NF

View NOWINDOW "NotaI"
If IsTable("NotaIC") Then View NOWINDOW "NotaIC" EndIf
If IsTable("NotaIDV") Then View NOWINDOW "NotaIDV" EndIf
View NOWINDOW "NotaV"

EndProc  ; (Carrega_Tabelas)

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoI()
INICIA_REGISTRO()
DIGITAI()
Moveto "NotaI"
If RecordStatus("Locked") Then UnLockRecord EndIf         
EndProc

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoC()
ncampop1="Numero do Documento"
ncampop2="Forma de pagamento"
ncampop3="Codigo da Transportadora"

ImageRights ReadOnly
SetaCorRegistro("Paginar")

While FACA_DIGITAC
  DIGITAC()
  If CHAVEC=9 Then QuitLoop EndIf

  While FACA_CHAVEI
    While True
      CHAVEI()
      If CHAVEI=9 Then QuitLoop EndIf
      If CHAVEI=7 Then     Loop EndIf
      Controla_EdicaoI()
    EndWhile
    
    While FACA_DIGITAF
      DIGITAF()
      ncampop2=Field()
      If CHAVEF = 9 Then QuitLoop EndIf
      DIGITAD()
      If CHAVED = 0
         Then FACA_DIGITAF = False
              FACA_CHAVEI  = False
              FACA_DIGITAC = False
      EndIf
      If CHAVED=9 Then Loop EndIf
      QuitLoop
    EndWhile      
  EndWhile
EndWhile
Moveto "NotaC"
If RecordStatus("Locked") Then UnLockRecord EndIf         
If OPCAO_FORM="F"
   Then PickForm "F"
EndIf

SaveTables
EndProc

;*******************************************************************************
;* Rotina Principal Nota Fiscal                                                *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Vendas\\Bib_Vend"

If Not IsAssigned(usandoconsultammaa)  Then usandoconsultammaa=false EndIf

If Not IsAssigned(SYS_EMPRESA_DEFAULT) Then SYS_EMPRESA_DEFAULT="" EndIf
If Not IsAssigned(SYS_CODIGO_CLIENTE)  Then SYS_CODIGO_CLIENTE=""  EndIf
If Not IsAssigned(SYS_CONTROLE_DIA)    Then SYS_CONTROLE_DIA=""    EndIf

Carrega_Tabelas()

VCITENS =BlankNum()
VSQTDE  =BlankNum()
VSVRMERC=BlankNum()

Coedit "NotaC"
PickForm "F"
OPCAO_FORM="F"

While True
  CHAVEC()
  If CHAVEC=9 Then QuitLoop EndIf
  If CHAVEC=5
     Then If OPCAO_FORM="F"
             Then PickForm "F"
             Else PickForm "1"
          EndIf
          Loop
  EndIf
  Controla_EdicaoC()
EndWhile
Do_It!
ClearAll

if not usandoconsultammaa
   then
        Release Vars All
        Release Procs All
   else     
        Release Vars usandoconsultammaa
        Release Procs CHAVEC,DigitaC,Soma_PrecoTotal,CHAVEI,Item_Dialog,DigitaI,Registro_Item,Inicia_Registro,DIGITAF,
                      DIGITAD,CHAVEV,Carrega_Tabelas,Controla_EdicaoI,Controla_EdicaoC
endif

