;** gerafat ********************************************************************
;*  Rotina para agerar fatura pelas notas, perda do fatura                     *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 19/02/2018 por Anivel Augusto Rodrigues
;Ultima Alteracao: 16/03/2019 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes Numero_Lancamento("Interno","Locked_Down")

;*******************************************************************************
;*                                                                             *
;*******************************************************************************
proc gerafatura()
private OF

; tratando apenas ROMANEIOS

moveto "Faturac"
While True
  End
  Moveto [Numero da OF]
  If Numero_Lancamento("Interno","Locked_Down")
     Then OF = PROXLANCTO_NLANC
          Release Vars PROXLANCTO_NLANC
          quitloop
  EndIf    
EndWhile

;moveto [Numero da OF      ]
;If Numero_Lancamento("Interno","")
;  Then OF     = PROXLANCTO_NLANC
;  Else return
;EndIf
;
;end down
;[Numero da OF      ]=OF

[Numero do Pedido           ]=[NotaC->Numero do Pedido           ] 
[Numero do Orcamento        ]=[NotaC->Numero do Orcamento        ] 
[Numero da OS               ]=[NotaC->Numero da OS               ] 

[Codigo da Empresa          ]=[NotaC->Codigo da Empresa          ] 
[Nome Fantasia Empresa      ]=[NotaC->Nome Fantasia Empresa      ]  
[Data de Emissao            ]=[NotaC->Data de Emissao            ]
[Data de Saida              ]=[NotaC->Data de Saida              ]
[Hora de Saida              ]=[NotaC->Hora de Saida              ]
[Codigo                     ]=[NotaC->Codigo                     ] 
[Tipo                       ]=[NotaC->Tipo                       ] 
[Nome Fantasia EmitDest     ]=[NotaC->Nome Fantasia EmitDest     ]  
[Razao Social               ]=[NotaC->Razao Social               ]  
[Endereco                   ]=[NotaC->Endereco                   ]  
[Bairro                     ]=[NotaC->Bairro                     ]  
[CEP                        ]=[NotaC->CEP                        ]  
[Cidade                     ]=[NotaC->Cidade                     ]  
[UF                         ]=[NotaC->UF                         ] 
[Tipo Pessoa                ]=[NotaC->Tipo Pessoa                ]  
[CGC                        ]=[NotaC->CGC                        ]  
[IE                         ]=[NotaC->IE                         ]  
[Telefone                   ]=[NotaC->Telefone                   ]  
[ISUFRAMA                   ]=[NotaC->ISUFRAMA                   ] 
[Consumidor Final           ]=[NotaC->Consumidor Final           ] 

[Codigo do Representante    ]=[NotaC->Codigo do Representante    ] 
[Nome Fantasia Represent    ]=[NotaC->Nome Fantasia Represent    ]  
[Comissao do Representante  ]=[NotaC->Comissao do Representante  ]

[Condicao de Pagamento      ]=[NotaC->Condicao de Pagamento      ] 
[Descricao CondPagto        ]=[NotaC->Descricao CondPagto        ]  
[Numero de Parcelas         ]=[NotaC->Numero de Parcelas         ]
[Tipo de Pagamento          ]=[NotaC->Tipo de Pagamento          ] 
[Composicao de Dias         ]=[NotaC->Composicao de Dias         ]  
[Forma de Pagamento         ]=[NotaC->Forma de Pagamento         ] 
[Codigo da Tabela           ]=[NotaC->Codigo da Tabela           ] 

[Codigo da Destinacao       ]=[NotaC->Codigo da Destinacao       ] 
[Descricao da Destinacao    ]=[NotaC->Descricao da Destinacao    ]  
[CFO                        ]=[NotaC->CFO                        ] 
[Tipo Movimento Estoque     ]=[NotaC->Tipo Movimento Estoque     ] 
[Atualiza Estoque           ]=[NotaC->Atualiza Estoque           ] 
[IndPres                    ]=[NotaC->IndPres                    ] 

[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                 ] 
[RNTC Veiculo               ]=[NotaC->RNTC Veiculo               ]  
[Frete por Conta            ]=[NotaC->Frete por Conta            ] 

[Valor Frete Cotado         ]=[NotaC->Valor Frete Cotado         ]
[Valor Mercadoria           ]=[NotaC->Valor Mercadoria           ]
[Taxa de Desconto           ]=[NotaC->Taxa de Desconto           ]
[Valor do Desconto          ]=[NotaC->Valor do Desconto          ]
[Valor Desconto             ]=[NotaC->Valor Desconto             ]
[Valor Mercadoria Liquido   ]=[NotaC->Valor Mercadoria Liquido   ]
[Valor Servico              ]=[NotaC->Valor Servico              ]
[Taxa de Desconto Servico   ]=[NotaC->Taxa de Desconto Servico   ]
[Valor do Desconto Servico  ]=[NotaC->Valor do Desconto Servico  ]
[Valor Servico Liquido      ]=[NotaC->Valor Servico Liquido      ]
[Valor Mercadoria_Servico   ]=[NotaC->Valor Mercadoria_Servico   ]
[Valor Desconto NTributado  ]=[NotaC->Valor Desconto NTributado  ]
[Valor BCICMS               ]=[NotaC->Valor BCICMS               ]
[Valor ICMS                 ]=[NotaC->Valor ICMS                 ]
[Valor BCSubstituicao ICMS  ]=[NotaC->Valor BCSubstituicao ICMS  ]
[Valor Substituicao ICMS    ]=[NotaC->Valor Substituicao ICMS    ]
[Valor BCISSQN              ]=[NotaC->Valor BCISSQN              ]
[Valor ISSQN                ]=[NotaC->Valor ISSQN                ]
[Valor IPI                  ]=[NotaC->Valor IPI                  ]
[Valor IR                   ]=[NotaC->Valor IR                   ]
[Valor INSS                 ]=[NotaC->Valor INSS                 ]
[Valor II                   ]=[NotaC->Valor II                   ]
[Valor PIS                  ]=[NotaC->Valor PIS                  ]
[Valor COFINS               ]=[NotaC->Valor COFINS               ]
[Valor do Frete             ]=[NotaC->Valor do Frete             ]
[Valor do Seguro            ]=[NotaC->Valor do Seguro            ]
[Valor Despesas Acessorias  ]=[NotaC->Valor Despesas Acessorias  ]
[Valor Nota Fiscal          ]=[NotaC->Valor Nota Fiscal          ]
[Valor TotTributos          ]=[NotaC->Valor TotTributos          ]
[Valor IPI Devolvido        ]=[NotaC->Valor IPI Devolvido        ]
[Valor ICMS_UFDest          ]=[NotaC->Valor ICMS_UFDest          ]
[Valor ICMS_UFRemet         ]=[NotaC->Valor ICMS_UFRemet         ]
[Valor FCP                  ]=[NotaC->Valor FCP                  ]
[Valor FCP_UFDest           ]=[NotaC->Valor FCP_UFDest           ]
[Valor FCP_Ret_ST           ]=[NotaC->Valor FCP_Ret_ST           ]
[Valor FCP_Ret_Ant_ST       ]=[NotaC->Valor FCP_Ret_Ant_ST       ]
[Valor Recebimento          ]=[NotaC->Valor Recebimento          ]
[Valor Troco                ]=[NotaC->Valor Troco                ]
[Valor Devolucao            ]=[NotaC->Valor Devolucao            ]
[Valor DebitoCredito        ]=[NotaC->Valor DebitoCredito        ]
[Valor TC                   ]=[NotaC->Valor TC                   ]
[Frete Incluso na Nota      ]=[NotaC->Frete Incluso na Nota      ]
[Aliquota BCFrete Nota      ]=[NotaC->Aliquota BCFrete Nota      ]
[Aliquota BCICMS Frete      ]=[NotaC->Aliquota BCICMS Frete      ]
[Aliquota de ICMS Frete     ]=[NotaC->Aliquota de ICMS Frete     ]
[CFO Frete                  ]=[NotaC->CFO Frete                  ] 
[Numero de Volumes          ]=[NotaC->Numero de Volumes          ]
[Peso Bruto                 ]=[NotaC->Peso Bruto                 ]
[Peso Liquido               ]=[NotaC->Peso Liquido               ]
[Observacao na Nota Fiscal  ]=[NotaC->Observacao na Nota Fiscal  ]   
[Numero Pedido_Orcamento    ]=[NotaC->Numero Pedido_Orcamento    ] 

[Numero_Carregamento        ]=[NotaC->Numero_Carregamento        ] 
[Origem do Pedido           ]=[NotaC->Origem do Pedido           ] 
[Entrega                    ]=[NotaC->Entrega                    ] 
[Nome do Autorizado         ]=[NotaC->Nome do Autorizado         ]  
[CPF do Autorizado          ]=[NotaC->CPF do Autorizado          ]  
[Data da Autorizacao        ]=[NotaC->Data da Autorizacao        ] 
[Codigo da Conta            ]=[NotaC->Codigo da Conta            ] 
[Codigo_Usuario             ]=[NotaC->Codigo_Usuario             ] 
[Data_Inclusao              ]=[NotaC->Data_Inclusao              ] 
[Hora_Inclusao              ]=[NotaC->Hora_Inclusao              ] 
[Numero_Controle_Dia        ]=[NotaC->Numero_Controle_Dia        ] 
                                                           
[Numero da Expedicao        ]=[NotaC->Numero da Expedicao        ] 
[Origem da Expedicao        ]=[NotaC->Origem da Expedicao        ] 

[Docto Nota Gerada          ]=[NotaC->Codigo do Documento]
[Serie Nota Gerada          ]=[Notac->Serie do Documento ]
[Numero Nota Gerada         ]=[Notac->Numero do Documento]

moveto "NotaI"
moveto [Codigo da Empresa]
locate [NotaC->Codigo da Empresa],[Notac->Numero do Documento],[Notac->Serie do Documento]
if retval
   then while [Codigo da Empresa  ]=[NotaC->Codigo da Empresa  ] and 
              [Numero do Documento]=[Notac->Numero do Documento] and
              [Serie do Documento ]=[Notac->Serie do Documento ]
              

          moveto "Faturai"
          end down
          [Numero da OF]=OF
          [Item da OF  ]=[NotaI->Item do Documento]          
          
          [Numero Pedido_Orcamento   ]=[NotaI->Numero Pedido_Orcamento   ]
          [Item Pedido_Orcamento     ]=[NotaI->Item Pedido_Orcamento     ]

          [Codigo do Item            ]=[NotaI->Codigo do Item            ]

          [Tipo do Item              ]=[NotaI->Tipo 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            ]
          [Tipo Desconto Item        ]=[NotaI->Tipo Desconto Item        ]
          [Taxa Desconto Unitario    ]=[NotaI->Taxa Desconto Unitario    ]
          [Valor Desconto Unitario   ]=[NotaI->Valor Desconto Unitario   ]
          [Valor Desconto Item       ]=[NotaI->Valor Desconto Item       ]
          [Preco Total               ]=[NotaI->Preco Total               ]
          [Preco Unitario Tabela     ]=[NotaI->Preco Unitario Tabela     ]
          [Custo Medio Unitario      ]=[NotaI->Custo Medio Unitario      ]
          [CFO                       ]=[NotaI->CFO                       ]
          [NCM                       ]=[NotaI->NCM                       ]
          [Tipo Tributacao           ]=[NotaI->Tipo Tributacao           ]
          [CSOSN                     ]=[NotaI->CSOSN                     ]       
          [Tributacao de ICMS        ]=[NotaI->Tributacao de ICMS        ]
          [Aliquota Reduzida BCICMS  ]=[NotaI->Aliquota Reduzida BCICMS  ]
          [ICMS_BC                   ]=[NotaI->ICMS_BC                   ]
          [Aliquota de ICMS          ]=[NotaI->Aliquota de ICMS          ]
          [Valor do ICMS             ]=[NotaI->Valor do ICMS             ]
          [ICMS_CredSN_Aliquota      ]=[NotaI->ICMS_CredSN_Aliquota      ]
          [ICMS_CredSN_Valor         ]=[NotaI->ICMS_CredSN_Valor         ]
          [ICMS_Valor_Desonerado     ]=[NotaI->ICMS_Valor_Desonerado     ]
          [ICMS_Motivo_Desoneracao   ]=[NotaI->ICMS_Motivo_Desoneracao   ]
          [ICMS_Diferido_VrOperacao  ]=[NotaI->ICMS_Diferido_VrOperacao  ]
          [ICMS_Diferido_Aliquota    ]=[NotaI->ICMS_Diferido_Aliquota    ]
          [ICMS_Diferido_Valor       ]=[NotaI->ICMS_Diferido_Valor       ]
          [Codigo MVA                ]=[NotaI->Codigo MVA                ]
          [MVA                       ]=[NotaI->MVA                       ]
          [ICMS_ST_ModalidadeBC      ]=[NotaI->ICMS_ST_ModalidadeBC      ]
          [ICMS_ST_Aliquota Reduzida ]=[NotaI->ICMS_ST_Aliquota Reduzida ]
          [ICMS_ST_BC                ]=[NotaI->ICMS_ST_BC                ]
          [ICMS_ST_Aliquota          ]=[NotaI->ICMS_ST_Aliquota          ]
          [ICMS_ST_Valor             ]=[NotaI->ICMS_ST_Valor             ]
          [ICMS_ST_BC_Retido         ]=[NotaI->ICMS_ST_BC_Retido         ]
          [ICMS_ST_Valor_Retido      ]=[NotaI->ICMS_ST_Valor_Retido      ]
          [Tributacao de IPI         ]=[NotaI->Tributacao de IPI         ]
          [IPI_CST                   ]=[NotaI->IPI_CST                   ]
          [Aliquota Reduzida BCIPI   ]=[NotaI->Aliquota Reduzida BCIPI   ]
          [IPI_BC                    ]=[NotaI->IPI_BC                    ]
          [Aliquota de IPI           ]=[NotaI->Aliquota de IPI           ]
          [Valor do IPI              ]=[NotaI->Valor do IPI              ]
          [Valor IPI por Unidade     ]=[NotaI->Valor IPI por Unidade     ]
          [Tributacao de ISSQN       ]=[NotaI->Tributacao de ISSQN       ]
          [ISSQN_BC                  ]=[NotaI->ISSQN_BC                  ]
          [Aliquota de ISSQN         ]=[NotaI->Aliquota de ISSQN         ]
          [Valor do ISSQN            ]=[NotaI->Valor do ISSQN            ]
          [Codigo_Servico            ]=[NotaI->Codigo_Servico            ]
          [ISSQN_UF                  ]=[NotaI->ISSQN_UF                  ]
          [ISSQN_Municipio           ]=[NotaI->ISSQN_Municipio           ]
          [PIS_CST                   ]=[NotaI->PIS_CST                   ]
          [PIS_BC                    ]=[NotaI->PIS_BC                    ]
          [PIS_Aliquota              ]=[NotaI->PIS_Aliquota              ]
          [PIS_Valor                 ]=[NotaI->PIS_Valor                 ]
          [COFINS_CST                ]=[NotaI->COFINS_CST                ]
          [COFINS_BC                 ]=[NotaI->COFINS_BC                 ]
          [COFINS_Aliquota           ]=[NotaI->COFINS_Aliquota           ]
          [COFINS_Valor              ]=[NotaI->COFINS_Valor              ]
          [II_BC                     ]=[NotaI->II_BC                     ]
          [II_Valor Imposto          ]=[NotaI->II_Valor Imposto          ]
          [II_Valor DespAduan        ]=[NotaI->II_Valor DespAduan        ]
          [II_Valor IOF              ]=[NotaI->II_Valor IOF              ]
          [Taxa Desconto Total       ]=[NotaI->Taxa Desconto Total       ]
          [Valor Desconto Total      ]=[NotaI->Valor Desconto Total      ]
          [Valor Frete Total         ]=[NotaI->Valor Frete Total         ]
          [Valor Seguro Total        ]=[NotaI->Valor Seguro Total        ]
          [Valor OutDesp Total       ]=[NotaI->Valor OutDesp Total       ]
          [Peso Liquido              ]=[NotaI->Peso Liquido              ]
          [Peso Embalagem            ]=[NotaI->Peso Embalagem            ]
          [Volumes                   ]=[NotaI->Volumes                   ]
          [Comissao do Item          ]=[NotaI->Comissao do Item          ]
          [Codigo da Tabela          ]=[NotaI->Codigo da Tabela          ]
          [Entrega                   ]=[NotaI->Entrega                   ]
          [Data a Entregar           ]=[NotaI->Data a Entregar           ]
          [Data de Entrega           ]=[NotaI->Data de Entrega           ]
          [Numero_Pedido_Compra      ]=[NotaI->Numero_Pedido_Compra      ]
          [Item_Pedido_Compra        ]=[NotaI->Item_Pedido_Compra        ]
          [Lookup_TabPreco_CondPagto ]=[NotaI->Lookup_TabPreco_CondPagto ]
          [Informacoes_Adicionais    ]=[NotaI->Informacoes_Adicionais    ]
          [Item do Pedido Agrupado   ]=[NotaI->Item do Pedido Agrupado   ]
          [IPI Devolvido_Porcentagem ]=[NotaI->IPI Devolvido_Porcentagem ]
          [IPI Devolvido_Valor       ]=[NotaI->IPI Devolvido_Valor       ]
          [Valor TotTributos         ]=[NotaI->Valor TotTributos         ]          
          
          moveto "NotaI"
          skip
          if eot() then quitloop endif
              
        endwhile
endif              

moveto "NotaV"
moveto [Codigo da Empresa]
locate [NotaC->Codigo da Empresa],[Notac->Numero do Documento],[Notac->Serie do Documento]
if retval
   then while [Codigo da Empresa  ]=[NotaC->Codigo da Empresa  ] and 
              [Numero do Documento]=[Notac->Numero do Documento] and
              [Serie do Documento ]=[Notac->Serie do Documento ]
              

          moveto "Faturav"
          end down
          [Numero da OF]=OF
          [Sequencia   ]=[NotaV->Sequencia]

          [Numero de Dias         ]=[NotaV->Numero de Dias         ]
          [Data                   ]=[NotaV->Data                   ]
          [Valor                  ]=[NotaV->Valor                  ]
          [Forma de Pagamento     ]=[NotaV->Forma de Pagamento     ]
          [Codigo_Banco           ]=[NotaV->Codigo_Banco           ]
          [Nome_Banco             ]=[NotaV->Nome_Banco             ]
          [Agencia                ]=[NotaV->Agencia                ]
          [Numero_Conta           ]=[NotaV->Numero_Conta           ]
          [Numero_Cheque          ]=[NotaV->Numero_Cheque          ]
          [CPF                    ]=[NotaV->CPF                    ]
          [Tipo_Emitente          ]=[NotaV->Tipo_Emitente          ]
          [Titular_Cheque         ]=[NotaV->Titular_Cheque         ]
          [Cidade                 ]=[NotaV->Cidade                 ]
          [UF                     ]=[NotaV->UF                     ]
          [Observacao             ]=[NotaV->Observacao             ]
          [Numero do Cartao       ]=[NotaV->Numero do Cartao       ]
          [Nome do Cartao         ]=[NotaV->Nome do Cartao         ]
          [Valor da Comissao      ]=[NotaV->Valor da Comissao      ]
          [Codigo CMC7            ]=[NotaV->Codigo CMC7            ]
          [Duplicata_VrOriginal   ]=[NotaV->Duplicata_VrOriginal   ]
          [Duplicata_VrDesconto   ]=[NotaV->Duplicata_VrDesconto   ]
          [Duplicata_DtLimDesconto]=[NotaV->Duplicata_DtLimDesconto]
          [Codigo da Conta        ]=[NotaV->Codigo da Conta        ]
                    
          
          moveto "NotaV"
          skip
          if eot() then quitloop endif
              
        endwhile
endif              


moveto "NotaC"
[Numero da OF]=OF
unlockrecord
              
endproc










;*******************************************************************************
;* Rotina Principal Emissao Nota Fiscal ou Romaneio                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,"+
        "\\Sistemas\\Cadastro\\Bib_Show,"+
        "\\Sistemas\\Cadastro\\Bib_Parm,"+
        "\\Sistemas\\Cadastro\\Bib_Bloq,"+
        "\\Sistemas\\Vendas\\Bib_Fat,"+
        "\\Sistemas\\Vendas\\Bib_Vend"

sys_valor()

if ConfGeral("Gerando Fatura atravez das Notas//"+
             "Corre‡Æo tabela Fatura por perdas//"+
             "Deseja Continuar?")
   then
;       empty("aaafc")
;       empty("aaafi")
;       empty("aaafv")
        
        
        View "Faturac"
        View "Faturai"
        View "Faturav"
        
;       View "FaturaC"
        
        View "NotaI"
        View "NotaV"
        Coedit "NotaC"
        
        NR = NRecords("NotaC")

        scan
        
          Barra(NR, RecNo())
          Aguarde("Aguarde, processando "+BARRA_STRING)

          if [Data de emissao]<DateVal("07.02.2018")
             then loop
          endif
            
          if [Situacao]="C"
             then loop
          endif    

          ofok=false
          moveto "FaturaC"
          moveto [Numero da OF]
          locate [NotaC->Numero da OF]
          if retval
             then 
                  if [Codigo da Empresa ]=[NotaC->Codigo da Empresa  ] and
                     [Docto Nota Gerada ]=[NotaC->Codigo do Documento] and
                     [Serie Nota Gerada ]=[Notac->Serie do Documento ] and
                     [Numero Nota Gerada]=[Notac->Numero do Documento]
                     then ofok=true
                  endif   
          endif
          if not ofok
             then gerafatura()
          endif
                  
          moveto "NotaC" 
        endscan
        do_it!
        clearall

endif

release vars all
release procs all




