;*******************************************************************************
;* Rotina de Digitacao Dados do Item                                           *
;*******************************************************************************
Proc Pega_Dados_Item(Origem) 
Private Item_ok, Origem

Item_ok=False

Moveto [Codigo do Item]
Ativa_Lookup()
Switch
  Case Origem="Codigo_Barras":
      Switch
        Case SYS_CODIGO_CLIENTE="0304":
              Moveto [Codigo de Barras]
              Locate IndexOrder by "cod_barras" CODIGO_BARRA
        OtherWise:        
              If Len(CODIGO_BARRA)<=10
                Then Moveto [Codigo do Item]
                     Locate ALINHM(CODIGO_BARRA,10)
                Else Moveto [Codigo de Barras]
                     Locate IndexOrder by "cod_barras" CODIGO_BARRA
              EndIf        
      EndSwitch       
  OtherWise:     
  Localizar_Item_Por()  
EndSwitch
                                                                             
If RetVal
  Then CopyToArray REG_BUSCA_LOOKUP
       KeyPress "ESC"

       While True
         VSD_I_Referencia=REG_BUSCA_LOOKUP["Referencia"]
                  
         If REG_BUSCA_LOOKUP["Inativo"]="S"
            Then Mensagem("Este item://"+REG_BUSCA_LOOKUP["Codigo do Item"]+" "+
                           REG_BUSCA_LOOKUP["Descricao do Item"]+"//"+"Referˆncia: "+
                           REG_BUSCA_LOOKUP["Referencia"]+"//"+
                          "Fornecedor: "+REG_BUSCA_LOOKUP["Codigo Fornecedor"]+"// // esta inativo !")
                 QuitLoop
         EndIf    

         If REG_BUSCA_LOOKUP["Producao Esgotada"] ="S"
            Then Mensagem("Este item: //"+REG_BUSCA_LOOKUP["Codigo do Item"]+"//"+REG_BUSCA_LOOKUP["Descricao do Item"]+"// // esta com produ‡„o esgotada !")
         EndIf

         FAMILIA=REG_BUSCA_LOOKUP["Codigo da Familia"] 

        ;-----------------------------------------------------------------------------------------       
         
         CODIGO_BARRA=REG_BUSCA_LOOKUP["Codigo do Item"]
         VSD_I_Codigo_Item =CODIGO_BARRA
         Pega_Preco("Novo")
         [Codigo do Item]  =CODIGO_BARRA

         If [Tipo do Item]="C" ; Servi‡o
            Then [Aliquota de ICMS      ]=BlankNum()
                 [Aliquota de IPI       ]=BlankNum()

                 If TPEMPR="SIMPLES NACIONAL" Or TPEMPR="SIMPLES NAC. ESRB"
                    Then [PIS_CST        ]="99"
                         [PIS_Aliquota   ]=BlankNum()

                         [COFINS_CST     ]="99"
                         [COFINS_Aliquota]=BlankNum()
                 EndIf        
                         
            Else
                 Switch
                   Case (TPEMPR="SIMPLES NACIONAL" Or TPEMPR="SIMPLES NAC. ESRB"):
        
                         Switch
                           Case (Search("MOSTR",[PedidoC->Descricao da Destinacao])>0  Or
                                 Search("DEVOL",[PedidoC->Descricao da Destinacao])>0  Or
                                 Search("BRIND",[PedidoC->Descricao da Destinacao])>0) And
                                SYS_CLIENTE_CONFEC<>"":
                                [CSOSN]="400"

                           Case ( TP_MOV_ESTOQUE="S" And
                                  (Search("VEND",[PedidoC->Descricao da Destinacao])>0 And
                                   [PedidoC->Tipo Pessoa]="FISICA") )
                                  Or 
                                ( TP_MOV_ESTOQUE="E" Or
                                  Search("VEND",[PedidoC->Descricao da Destinacao])=0 Or
                                  [PedidoC->Tipo Pessoa]="FISICA" ):  
                                 Switch
                                   Case [CSOSN]="101": [CSOSN]="102" 
                                   Case [CSOSN]="201": [CSOSN]="202" 
                                 EndSwitch

                         EndSwitch
        
                         Switch
                           Case [CSOSN]="101" Or [CSOSN]="900":         
                                ;[ICMS_CREDSN_Aliquota]=ALIQUOTA_CREDITO_ICMS_NOSN
                                If OPCAO_RED_BCICMS="1"
                                   Then [Aliquota Reduzida BCICMS]=BlankNum()
                                EndIf
                                [MVA                 ]=BlankNum()
                                [ICMS_ST_Aliquota    ]=BlankNum()
        
                           Case [CSOSN]="201":
                                ;[ICMS_CREDSN_Aliquota]=ALIQUOTA_CREDITO_ICMS_NOSN
                                If OPCAO_RED_BCICMS="1"
                                   Then [Aliquota Reduzida BCICMS]=BlankNum()
                                EndIf                                 
                                [ICMS_ST_Aliquota]=UF_ALIQUOTA_ICMS_INTERNA
                                Checa_MVA([Tributacao de ICMS],[Codigo MVA])
        
                           Case [CSOSN]="202" Or [CSOSN]="203" Or [CSOSN]="500":
                                ;[ICMS_CREDSN_Aliquota]=BlankNum()
                                If OPCAO_RED_BCICMS="1"
                                   Then [Aliquota Reduzida BCICMS]=BlankNum()
                                EndIf
                                [ICMS_ST_Aliquota]=UF_ALIQUOTA_ICMS_INTERNA
                                Checa_MVA([Tributacao de ICMS],[Codigo MVA])
        
                           OtherWise:
                                ;[ICMS_CREDSN_Aliquota]=BlankNum()
                                [MVA                 ]=BlankNum()
                                [ICMS_ST_Aliquota    ]=BlankNum()
                         EndSwitch

                         [Tributacao de Icms]=Pega_TipoTributacao("CSOSN",[CSOSN])
                         
                   OtherWise:
        
                         TribCST=SubStr([Tipo Tributacao],2,2)
                         Switch
                           Case (TribCST="00" And TRIB_ICMS="D" And UF_ALIQUOTA_ICMS>0) Or
                                (TribCST="10" And TRIB_ICMS="D" And UF_ALIQUOTA_ICMS>0) Or
                                (TribCST="20" And TRIB_ICMS="D" And UF_ALIQUOTA_ICMS>0) Or
                                (TribCST="70" And TRIB_ICMS="D" And UF_ALIQUOTA_ICMS>0):
                                [Aliquota de ICMS  ]=UF_ALIQUOTA_ICMS
                                 If OPCAO_RED_BCICMS="1"
                                    Then [Aliquota Reduzida BCICMS]=BlankNum()
                                 EndIf
                
                           Case (TribCST="10" And TRIB_ICMS="S" And UF_ALIQUOTA_ICMS>0) Or
                                (TribCST="70" And TRIB_ICMS="S" And UF_ALIQUOTA_ICMS>0):
                                [Aliquota de ICMS  ]=UF_ALIQUOTA_ICMS
                                 If OPCAO_RED_BCICMS="1"
                                    Then [Aliquota Reduzida BCICMS]=BlankNum()
                                 EndIf
               
                           Case (TribCST="00" Or TribCST="10" Or TribCST="20" Or TribCST="70") And
                                TRIB_ICMS<>"D" And TRIB_ICMS<>"S":
                                [Tributacao de Icms]=TRIB_ICMS
                                [Aliquota de ICMS  ]=BlankNum()
                                Switch
                                 Case [Tributacao de Icms]="O": [Tipo Tributacao]=SubStr([Tipo Tributacao],1,1)+"90"                
                                 Case [Tributacao de Icms]="I": [Tipo Tributacao]=SubStr([Tipo Tributacao],1,1)+"40"                                
                                 Case [Tributacao de Icms]="N": [Tipo Tributacao]=SubStr([Tipo Tributacao],1,1)+"41"                                
                							 EndSwitch
                         EndSwitch
        
                         [CSOSN               ]="900"
                         [ICMS_CREDSN_Aliquota]=BlankNum()
                          
                         If (TribCST="10" Or TribCST="30" Or TribCST="70")
                            Then [ICMS_ST_Aliquota]=UF_ALIQUOTA_ICMS_INTERNA
                                 Checa_MVA([Tributacao de ICMS],[Codigo MVA])
                
                            Else [MVA             ]=BlankNum()
                                 [ICMS_ST_Aliquota]=BlankNum()
                         EndIf 

                         [Tributacao de ISSQN     ]="N"
                         [Aliquota de ISSQN       ]=BlankNum()
        
                 EndSwitch
                 
         EndIf   

         ;* Seta Variaveis PegaCFOP
         Checa_CFOP      =TP_MOV_ESTOQUE
         CFO_C           =[PedidoC->CFO      ]
         CFOP_TPITEM     =[Tipo do Item      ]
         CFOP_TRIBICMS   =[Tributacao de ICMS]
         CFOP_TPTRIB     =[Tipo Tributacao   ]
         CFOP_EMPRESA    =[PedidoC->Codigo da Empresa ]
         CFOP_ATIVEMPRESA=ATIVEMPR
         Play "\\Sistemas\\Exporta\\PegaCFOP"        
         [CFO            ]=CFO_C
         [Tipo Tributacao]=CFOP_TPTRIB

         If [Tipo do Item]="C" ; Servi‡o
            Then If SYS_CODIGO_CLIENTE="0296"
                    Then [ISSQN_Municipio]=3122306
                         [ISSQN_UF       ]="MG"
                         Switch
                           Case Substr([PedidoC->CFO],1,1)="5" : [CFO]="5933"
                           Case Substr([PedidoC->CFO],1,1)="6" : [CFO]="6933"
                         EndSwitch  
                 EndIf
         EndIf

         If Search("VENDA",[PedidoC->Descricao da Destinacao])=0 And TP_MOV_ESTOQUE<>"S"
            Then [PIS_CST        ]  ="99"
                 [PIS_ALIQUOTA   ]=BlankNum() 
                 [COFINS_CST     ]  ="99"
                 [COFINS_ALIQUOTA]=BlankNum() 
         EndIf            
         
         Item_Ok=True
         QuitLoop
       EndWhile
  Else KeyPress "ESC"
       Mensagem("Item n„o Cadastrado !")
EndIf

Echo Off
Return Item_ok
EndProc
              
