

; Script fora de uso, verificar quem precisa e analisar !!
;Ultima Alteracao: 31/08/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes           

return


;** GeraOFVD **************************************************************************
;*  Monta Nota Fiscal dos Cupons em Aberto (Vendas)                                   *
;**************************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 16/09/2004 por Jos‚ Lu¡s Ameno da Silva
;Ultima Alteracao: 11/04/2005 por Davi Pereira Carrano
;Motivo Alteracao: Retirando o Atendente
;Ultima Alteracao: 19/03/2013 por Bruno Carvalho
;Motivo Alteracao: Comentado a linha "Fator Conversao" quando utilizado nos Itens 
;Ultima Alteracao: 19/03/2013 por Bruno Carvalho
;Motivo Alteracao: Comentado a linha onde utilizava o campo/variavel "NBM"
;Ultima Alteracao: 25/08/2015 por Kamila Gomes 
;Motivo Alteracao: Altera‡Æo no processo dos Numero do Lan‡amento - Numero_Lancamento()
;Ultima Alteracao: 07/12/2015 por Anivel Augusto Rodrigues
;Motivo Alteracao: exclusao referencia ao campo INSS
;Ultima Alteracao: 07/12/2015 por Anivel Augusto Rodrigues
;Motivo Alteracao: exclusao referencia ao campo IR se nÆo for utilizado!
;Ultima Alteracao: 27/05/2016 por Bruno Carvalho 
;Motivo Alteracao: Alterado NUM_LANCTO = PROXLANCTO_NLANC -> Padroniza‡Æo da rotina de Numero_Lancamento()
;Ultima Alteracao: 14/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 27/07/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes nÆo usar condi‡Æo pagamento por item
;Ultima Alteracao: 05/08/2017 por Bruno Carvalho
;Motivo Alteracao: Substituido [Valor IR] -> [Valor DebitoCredito] e [Valor INSS] -> [Valor TC]

;*******************************************************************************
;* Rotina para transferir dados do cupom para a nota                           *
;*******************************************************************************
Proc Transfere_Dados_Nota()

If Not Carrega_Parametros()
   Then Return
EndIf

View NOWINDOW  "NotaC"
Moveto [Codigo da Empresa]
Locate VSDGEMPRESA,VSDGCUPOM,VSDGSERTPDOCTO
If Not RetVal
   Then MENSAGEM("Cupom Fiscal n„o Encontrado")
        ClearImage
        Return False
EndIf

CoEdit "FaturaI","FaturaC","NotaI","Destin"
;********* Pega ultimo Numero da OF e soma 1 ******************
SEQ = 1

Moveto "FaturaC"
While True
  Moveto [Numero da OF]
  End
  If Numero_Lancamento("Interno","")
     Then ORDFAT = PROXLANCTO_NLANC
          Release Vars PROXLANCTO_NLANC
  EndIf
  Locate ORDFAT
  If Not Retval
     Then End Down
          [Numero da OF]=ORDFAT
          If Not IsLockRecord()
             Then QuitLoop
          EndIf
  EndIf
EndWhile

;****** Gera Item da Nota Fiscal **************************
Moveto "FaturaI"
Moveto [Numero da Of]
Locate ORDFAT
If RetVal
   Then While True
          Del
          Locate Next ORDFAT
          If Not RetVal
             Then QuitLoop
          EndIf
        EndWhile
EndIf

VRMERC = [NotaC->Valor Mercadoria]

Moveto "NotaI"
Moveto [Codigo da Empresa]
Locate VSDGEMPRESA,VSDGCUPOM,VSDGSERTPDOCTO

If Retval
   Then
        While [Codigo da Empresa  ]=VSDGEMPRESA And
              [Numero do Documento]=VSDGCUPOM And
              [Serie do Documento ]=VSDGSERTPDOCTO
              Moveto "FaturaI"
              End
              Down

              [Numero da Of            ] = ORDFAT
              [Item da OF              ] = [NotaI->Item do Documento       ]
              [Numero Pedido_Orcamento ] = [NotaI->Numero Pedido_Orcamento ]
              [Item Pedido_Orcamento   ] = [NotaI->Item Pedido_Orcamento   ]
              [Tipo do Item            ] = [NotaI->Tipo do Item            ]
              [Codigo do Item          ] = [NotaI->Codigo do Item          ]
              [Descricao do Item       ] = [NotaI->Descricao do Item       ]
              [Codigo da Cor_Tecido    ] = [NotaI->Codigo da Cor_Tecido    ]
              [Descricao da Cor_Tecido ] = [NotaI->Descricao da Cor_Tecido ]
              [Tamanho                 ] = [NotaI->Tamanho                 ]
              [Quantidade              ] = [NotaI->Quantidade              ]
              [Unidade Fiscal          ] = [NotaI->Unidade Fiscal          ]
              [Preco Unitario          ] = [NotaI->Preco Unitario          ]
              [Taxa Desconto Unitario  ] = [NotaI->Taxa Desconto Unitario  ]
              [Valor Desconto Unitario ] = [NotaI->Valor Desconto Unitario ]
              [Preco Total             ] = Round([NotaI->Preco Total             ],2)
              [Preco Unitario Tabela   ] = [NotaI->Preco Unitario Tabela   ]
              [Custo Medio Unitario    ] = [NotaI->Custo Medio Unitario    ]
              [Tributacao de IPI       ] = [NotaI->Tributacao de IPI       ]
              [Aliquota Reduzida BCIPI ] = [NotaI->Aliquota Reduzida BCIPI ]
              [Aliquota de IPI         ] = [NotaI->Aliquota de IPI         ]
              [Valor do Ipi            ] = Round(([Preco Total]*[Aliquota de IPI])/100,2)
              [Tributacao de ICMS      ] = [NotaI->Tributacao de ICMS      ]
              [Aliquota Reduzida BCICMS] = [NotaI->Aliquota Reduzida BCICMS]
              [Aliquota de ICMS        ] = [NotaI->Aliquota de ICMS        ]
              If [FaturaC->Taxa de Desconto]>0
                 Then VRDESCTO=Round((VRMERC*[NotaC->Taxa de Desconto])/100,2)
                      TXDESCTO_TOTAL=[NotaC->Taxa de Desconto]
                 Else VRDESCTO=[NotaC->Valor do Desconto]
                      TXDESCTO_TOTAL=(VRDESCTO/VRMERC)*100
              EndIf
              [Taxa Desconto Total     ] = TXDESCTO_TOTAL
              [Valor Desconto Total    ] = Round((([Preco Total]*TXDESCTO_TOTAL)/100),5)
                                     VBC = [Preco Total]-[Valor Desconto Total]
                                     VBC = VBC-Round((VBC*[Aliquota Reduzida BCICMS])/100,2)
              [Valor do ICMS           ] = Round((VBC*[Aliquota de ICMS])/100,2)
              [Tributacao de ISSQN     ] = [NotaI->Tributacao de ISSQN     ]
              [Aliquota de ISSQN       ] = [NotaI->Aliquota de ISSQN       ]
              [Valor do ISSQN          ] = Round(([Preco Total]*[Aliquota de ISSQN])/100,2)
              [Peso Liquido            ] = [NotaI->Peso Liquido            ]
              [Peso Embalagem          ] = [NotaI->Peso Embalagem          ]
              [Volumes                 ] = [NotaI->Volumes                 ]
              [Tipo Tributacao         ] = [NotaI->Tipo Tributacao         ]
              UnLockRecord

              Moveto "NotaI"
              Skip
              If EOT() Then QuitLoop EndIf
        EndWhile
   Else Mensagem("Itens da Nota n„o encontrados.//  Verifique.")
        Return False
EndIf
;****** Gera Cabeca da Digitacao da Nota Fiscal *************************
Moveto "Faturac"
[Numero da Of             ] = ORDFAT
[Codigo da Empresa        ] = VSDGEMPRESA
[Nome Fantasia Empresa    ] = VSDGNOMEMP
[Data de Emissao          ] = Today()
[Data de Saida            ] = Today()
[Hora de Saida            ] = Time()
[Codigo                   ] = [NotaC->Codigo                   ]
[Tipo                     ] = [NotaC->Tipo                     ]
[Nome Fantasia EmitDest   ] = [NotaC->Nome Fantasia EmitDest   ]
[Tipo Pessoa              ] = [NotaC->Tipo Pessoa              ]
[Consumidor Final         ] = [NotaC->Consumidor Final         ]
[Razao Social             ] = [NotaC->Razao Social             ]
[Cidade                   ] = [NotaC->Cidade                   ]
[UF                       ] = [NotaC->UF                       ]
[Aliquota de ICMS         ] = [NotaC->Aliquota de ICMS         ]
[CGC                      ] = [NotaC->CGC                      ]
[Codigo do Representante  ] = [NotaC->Codigo do Representante  ]
[Nome Fantasia Represent  ] = [NotaC->Nome Fantasia Represent  ]
[Comissao do Representante] = [NotaC->Comissao do Representante]
[CFO                      ] = [NotaC->CFO                      ]
[Atualiza Estoque         ] = [NotaC->Atualiza Estoque         ]
[Tipo Movimento Estoque   ] = [NotaC->Tipo Movimento Estoque   ]
[Codigo da Transportadora ] = [NotaC->Codigo da Transportadora ]
[Nome Fantasia Transport  ] = [NotaC->Nome Fantasia Transport  ]
[Placa do Veiculo         ] = [NotaC->Placa do Veiculo         ]
[UF Veiculo               ] = [NotaC->UF Veiculo               ]
[Frete por Conta          ] = [NotaC->Frete por Conta          ]
[Taxa de Desconto         ] = [NotaC->Taxa de Desconto         ]
[Valor do Desconto        ] = [NotaC->Valor do Desconto        ]
[Valor Mercadoria         ] = [NotaC->Valor Mercadoria         ]
[Valor Servico            ] = [NotaC->Valor Servico            ]
[Valor Desconto           ] = [NotaC->Valor Desconto           ]
[Valor Mercadoria Liquido ] = [NotaC->Valor Mercadoria Liquido ]
[Valor BCICMS             ] = [NotaC->Valor BCICMS             ]
[Valor ICMS               ] = [NotaC->Valor ICMS               ]
[Valor IPI                ] = [NotaC->Valor IPI                ]
[Valor ISSQN              ] = [NotaC->Valor ISSQN              ]
[Valor DebitoCredito      ] = [NotaC->Valor DebitoCredito      ]
[Valor TC                 ] = [NotaC->Valor TC                 ]
[Valor Nota Fiscal        ] = [NotaC->Valor Nota Fiscal        ]
[Valor Despesas Acessorias] = [NotaC->Valor Despesas Acessorias]
[Valor BCSubstituicao ICMS] = [NotaC->Valor BCSubstituicao ICMS]
[Valor Substituicao ICMS  ] = [NotaC->Valor Substituicao ICMS  ]
[Frete Incluso na Nota    ] = [NotaC->Frete Incluso na Nota    ]
[Aliquota BCFrete Nota    ] = [NotaC->Aliquota BCFrete Nota    ]
[Valor do Frete           ] = [NotaC->Valor do Frete           ]
[Aliquota BCICMS Frete    ] = [NotaC->Aliquota BCICMS Frete    ]
[Aliquota de ICMS Frete   ] = [NotaC->Aliquota de ICMS Frete   ]
[Cfo Frete                ] = [NotaC->Cfo Frete                ]
[Valor do Seguro          ] = [NotaC->Valor do Seguro          ]
[Numero de Volumes        ] = [NotaC->Numero de Volumes        ]
[Peso Bruto               ] = [NotaC->Peso Bruto               ]
[Peso Liquido             ] = [NotaC->Peso Liquido             ]
[Codigo da Tabela         ] = [NotaC->Codigo da Tabela         ]
[Codigo da Transportadora ] = PARAM_TRANSPORTADORA

Moveto "Destin"
Moveto [Descricao da Destinacao]
Locate "FATURA CUPOM"
If Retval
   Then CODDEST = [Codigo da Destinacao]
   Else CODDEST = ""
EndIf

Moveto "FaturaC"
[Codigo da Destinacao      ]=CODDEST
[Observacao na Nota Fiscal ]="Referente a Cupon(s) No.(s) : " + VSDGCUPOM
UnLockRecord

Do_It!
ClearAll

Return True
EndProc  ; (Transfere_Dados_Nota)

;*******************************************************************************
;* Rotina para Carregar Parametros                                             *
;*******************************************************************************
Proc Carrega_Parametros()

If IsEmpty("P_Fatura")
   Then Mensagem("N„o esta Configurado os Parametros para Digita‡„o !")
        Return False
EndIf
View NOWINDOW "P_Fatura"
Moveto [Codigo_Empresa]
Locate VSDGEMPRESA
If Not RetVal
   Then Mensagem("Parametros n„o Cadastrado para esta Empresa !")
        ClearImage
        Return False
EndIf

PARAM_EMPRESA                  =[Codigo_Empresa           ]
PARAM_DESTINACAO               =[Codigo_Destinacao        ]
PARAM_CONTA_CAIXA              =[Codigo_Conta_Caixa       ]
PARAM_DATAS_VENCTOS            =[Datas_Vencimentos        ]
PARAM_COR_TECIDO               =[Cor_Tecido               ]
PARAM_TAMANHO                  =[Tamanho                  ]
PARAM_DESCUNIT                 =[Desconto Unitario        ]
PARAM_VOLUMES                  =[Volumes                  ]
PARAM_SUBSTICMS                =[Substituicao ICMS        ]
PARAM_PEDIDO                   =[Utiliza_Pedido           ]
PARAM_ORCAMENTO                =[Utiliza_Orcamento        ]
PARAM_ORDEM_SERVICO            =[Utiliza_OS               ]
PARAM_BLOQUEIA_NEG             =[Bloqueia_Estoque_Negativo]
PARAM_MULT_BCICMS              =[Multiplas_BC_ICMS        ]
PARAM_NLCHQ_IGUAL_NF           =[NLCheque_Igual_NF        ]
PARAM_IMPOSTOS                 =[Impostos                 ]
PARAM_TABELA_PRECO             =[Tabela_Preco             ]
PARAM_TRANSPORTADORA           =[Codigo_Transportadora    ]
PARAM_TRANSFERENCIA            =[Utiliza_Transferencia    ]
PARAM_CONSIGNACAO              ="N"
PARAM_CHEQUES                  =[Utiliza_Controle_Cheques ]
PARAM_RELAT_NF                 =[Script_Impressao_NF      ]
PARAM_RELAT_ROMA               =[Script_Impressao_Romaneio]
PARAM_RELAT_NP                 =[Script_Impressao_NP      ]
PARAM_CONTROLA_NITENS          =[Controla_Numero_Itens    ]
PARAM_NITENS                   =[Numero_Itens             ] 
PARAM_TAMANHO_DESCR            =[Tamanho_Descricao_Item   ]
PARAM_NLINHAS_OBS              =[NLinhas_Obs_Campo_Itens  ]
PARAM_NLCHQ_IGUAL_NF           =[NLCheque_Igual_NF        ]
PARAM_NVIAS_ROMANEIO           =[NVias_Romaneio           ]
PARAM_LIMITE_CREDITO           =[Utiliza_Limite_Credito   ]
PARAM_ALTERA_PRECO             =[Utiliza_Alteracao_Preco  ]
PARAM_DIAS_ATRASO              =[Utiliza_Dias_Atraso      ]
PARAM_CUPOM_FISCAL             =[Utiliza_Cupom_Fiscal     ]
PARAM_UTILIZACDBARRA           =[Utiliza_Codigo_Barras    ]
PARAM_BLOQUEIA_NF              =[Bloqueia_Reemissao_NF    ]
PARAM_AVISTAAUTOMAT            =[Gera_VendasVista_Automat ]
PARAM_APRAZOAUTOMAT            =[Gera_VendasPrazo_Automat ]
PARAM_AVISTADUPLIC             =[Gera_Duplicatas_AVista   ]
PARAM_TXJUROS                  =[Duplicata_TxJuros        ]
PARAM_FORMA_TXJUROS            =[Duplicata_Forma_TxJuros  ]
PARAM_DUPLIC_NUMERO            =[Gera_Duplicatas_Numero   ]
PARAM_COMIS_ITEM               =[Comissao_Item            ]
PARAM_COMIS_MARCA              =[Utiliza_Comissao_Marca   ]

PARAM_TABPR_ITEM               =[Utiliza_Tabela_Preco_Item]
PARAM_COMIS_VENCTO             =[Calcula_Comissao_Vencto  ]
PARAM_VISITA                   =[Utiliza_Visita           ]
PARAM_BLOQUEIA_AUTORI          =[Bloqueia_Autorizados     ]

PARAM_BLOQPED_NEG    ="S"
PARAM_UTILIZA_COMISSAO_VENDEDOR=[Utiliza_Comissao_Vendedor]
PARAM_RATEIO_COMISSAO          =[Utiliza_Rateio_Comissao  ]
PARAM_TRANSF_ULTCT             =[Utiliza_UltCust_Transfer ]
PARAM_UTILIZA_COMISSAO_VENDREAL=[Utiliza_Comissao_VendReal]
PARAM_UTILIZA_TABPR_CLIENTE    =[Utiliza_TabPreco_Cliente ]
PARAM_PEGAPRECO_CPAGTO         =[Pega_Preco_Tabela_CPagto ]
ClearImage

Return True
EndProc ; (Carrega_Parametros)


;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
MSG_CAMPO=""
TECLA=""

If Disparo="OPEN"  Then AoCriarShowDialog() EndIf
If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] = 9: Temp=False
     Case Evento["KeyCode"] = -59: Dialog_F1()
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case Campo="TG_EMPRESA"       : Campo="NO"
            Case Campo="TG_TPDOCTO"       : Campo="TG_EMPRESA"
            Case Campo="TG_CUPOM"         : Campo="TG_TPDOCTO"
            Case Campo="YES" Or Campo="NO": Campo="TG_EMPRESA"
          EndSwitch
     Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_EMPRESA":
                         If Not IsBlank(VSDGEMPRESA)
                            Then Campo="TG_TPDOCTO"
                         EndIf
                    Case Campo="TG_TPDOCTO" :
                         If Not IsBlank(VSDGTPDOCTO)
                            Then Campo="TG_CUPOM"
                         EndIf
                    Case Campo="TG_CUPOM":
                         VSDGCUPOM=AlinhM(ControlValue("TG_CUPOM"),6)
                         If VSDGCUPOM<>""
                            Then Campo="YES"
                         EndIf
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_EMPRESA":
       MSG_CAMPO="Informe a Empresa"
  Case Campo="TG_TPODOCTO":
       MSG_CAMPO="Informe o Tipo de Docto"
  Case Campo="TG_CUPOM":
       MSG_CAMPO="Informe o N£mero do Cupom"
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Vendas\\Bib_Fat"

LimpAguarde()

VSDGEMPRESA  = ""
VSDGNOMEMP   = ""
VSDGCUPOM    = ""
VSDGTPODOCTO = ""

While True

  ShowDialog "Relaciona Cupons Fiscais para montar Nota Fiscal" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB"
   @ 05,12   Height 11 Width 72

    Label  @ 00,00 "Empresa"  For "TG_EMPRESA"
    Accept @ 01,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_EMPRESA"    To VSDGEMPRESA
    Accept @ 01,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMEMPRESA" To VSDGNOMEMP

    Label  @ 02,00 "Tipo Docto"  For "TG_TPDOCTO"
    Accept @ 03,01 Width 07 "A4"  Picture "!*!" Tag "TG_TPDOCTO" To VSDGTPDOCTO
    Accept @ 03,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMTPDOCTO"  To VSDGNOMTPDOCTO

    Label  @ 04,00 "Cupom"  For "TG_CUPOM"
    Accept @ 05,01 Width 09 "A6"  Picture "#*#" Tag "TG_CUPOM" To VSDGCUPOM

    Pushbutton @ 07,22 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 07,36 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog
  If Not RetVal Then QuitLoop EndIf

  AGUARDE("Aguarde, gerando dados")

  If Transfere_Dados_Nota()
     Then MSG="Anote o N£mero da OF gerada:// //"
          MSG=MSG+ORDFAT+"//"
          Mensagem(MSG)
  EndIf

EndWhile
ClearAll
Release Vars All
Release Procs All
