Histórico da Página
...
Informações | ||
---|---|---|
| ||
Para generar recibos con serie, es necesario contar con el parámetro MV_SERREC igual a ".T." y a su vez obtener el número consetivo de la tabla SX5 o en su defecto informarlo de forma directa, cuidando que la númeración sea la correcta. Ejemplo para obtener el consecutivo del recibo de la tabla SX5: DbSelectArea("SX5") |
Ejemplo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
#INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" #INCLUDE "FWEVENTVIEWCONSTS.CH" #INCLUDE 'FINA887.CH' Function F887FINAUTO() Local oMdlTab Local cCRLF := (chr(10)+chr(13)) Local cMsj := "Recibo registrado con exito." + cCRLF Local cRecibo := "CFGIAU" Local cSerie := " " Local cCliente := "CSERVI" Local jData := JsonObject():New() // Objeto Json que contiene la información del recibo a timbrar y algunas configuraciones. Local aResTmp := {} // Arreglo para guardar los errores del timbrado Local nY := 0 SetFunName("FINA887") oMdlTab := FwLoadModel("FINA887") oMdlTab:SetOperation(MODEL_OPERATION_INSERT) oMdlTab:Activate() //Encabezado - FJT oMdlTab:SetValue('FJT_MASTER', "FJT_FILIAL" , xFilial("FJT")) // FILIAL oMdlTab:SetValue('FJT_MASTER', "FJT_DTDIGI" , dDataBase ) oMdlTab:SetValue('FJT_MASTER', "FJT_RECIBO" , cRecibo) oMdlTab:SetValue('FJT_MASTER', "FJT_SERIE" , cSerie) oMdlTab:SetValue('FJT_MASTER', "FJT_EMISSA" , dDataBase) oMdlTab:SetValue('FJT_MASTER', "FJT_NATURE" , "COBRO ") oMdlTab:SetValue('FJT_MASTER', "FJT_CLIENT" , cCliente) oMdlTab:SetValue('FJT_MASTER', "FJT_LOJA" , "01") oMdlTab:SetValue('FJT_MASTER', "FJT_COBRAD" , "") oMdlTab:SetValue('FJT_MASTER', "FJT_RECPRV" ,"") oMdlTab:SetValue('FJT_MASTER', "GERANCC" , "") oMdlTab:SetValue('FJT_MASTER', "DOCUMEN" , "RA") Pergunte("FIN998",.F.) oMdlTab:SetValue('FJT_MASTER', "ASIENTO" , MV_PAR01) // ¿Muestra Asientos ? oMdlTab:SetValue('FJT_MASTER', "AGRUPA" , MV_PAR02) // ¿Agrupa Asientos ? oMdlTab:SetValue('FJT_MASTER', "ONLINE" , MV_PAR03) //¿Asientos Online ? //Monedas oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "1") oMdlTab:SetValue('MOE_DETAIL',"TASA" , 1) oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 1110) oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 ) oMdlTab:GetModel('MOE_DETAIL' ):AddLine() oMdlTab:SetValue('MOE_DETAIL',"MOEDA" , "2") oMdlTab:SetValue('MOE_DETAIL',"TASA" , 0) oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO" , 0) oMdlTab:SetValue('MOE_DETAIL',"SALDO" , 0 ) // Agregar la forma de pago oMdlTab:SetValue('SEL_DETAIL',"EL_CLIENTE" , cCliente ) oMdlTab:SetValue('SEL_DETAIL',"EL_NATUREZ" , "COBRO ") oMdlTab:SetValue('SEL_DETAIL',"EL_LOJA" , "01") oMdlTab:SetValue('SEL_DETAIL',"EL_DTDIGIT" , dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPO" , "TF") oMdlTab:SetValue('SEL_DETAIL',"EL_FILIAL" , xFilial("SEL")) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPODOC" , "TF") oMdlTab:SetValue('SEL_DETAIL',"EL_MOEDA" , "1") oMdlTab:SetValue('SEL_DETAIL',"EL_EMISSAO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_DTVCTO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TPCRED" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ACREBAN" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_TERCEIR" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ENDOSSA" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_TRANSIT" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_VERSAO" ,"00") oMdlTab:SetValue('SEL_DETAIL',"EL_SELDOC" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_FORPGO" ,"03") oMdlTab:SetValue('SEL_DETAIL',"EL_HRPAGO" ,"12:00:00") oMdlTab:SetValue('SEL_DETAIL',"EL_HORA" ,"11:00:13") oMdlTab:SetValue('SEL_DETAIL',"EL_PREFIXO" ,"TF") oMdlTab:SetValue('SEL_DETAIL',"EL_NUMERO" ,"TFAUTO-0000") oMdlTab:SetValue('SEL_DETAIL',"EL_VALOR" ,440) oMdlTab:SetValue('SEL_DETAIL',"EL_BANCO" ,"CX1") oMdlTab:SetValue('SEL_DETAIL',"EL_AGENCIA" ,"00001") oMdlTab:SetValue('SEL_DETAIL',"EL_CONTA" ,"0000000001") oMdlTab:GetModel('SEL_DETAIL' ):AddLine() oMdlTab:SetValue('SEL_DETAIL',"EL_CLIENTE" , cCliente ) oMdlTab:SetValue('SEL_DETAIL',"EL_NATUREZ" , "COBRO ") oMdlTab:SetValue('SEL_DETAIL',"EL_LOJA" , "01") oMdlTab:SetValue('SEL_DETAIL',"EL_DTDIGIT" , dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPO" , "EF") oMdlTab:SetValue('SEL_DETAIL',"EL_FILIAL" , xFilial("SEL")) oMdlTab:SetValue('SEL_DETAIL',"EL_TIPODOC" , "EF") oMdlTab:SetValue('SEL_DETAIL',"EL_MOEDA" , "1") oMdlTab:SetValue('SEL_DETAIL',"EL_EMISSAO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_DTVCTO" ,dDataBase) oMdlTab:SetValue('SEL_DETAIL',"EL_TPCRED" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ACREBAN" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_TERCEIR" ,"1") oMdlTab:SetValue('SEL_DETAIL',"EL_ENDOSSA" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_TRANSIT" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_VERSAO" ,"00") oMdlTab:SetValue('SEL_DETAIL',"EL_SELDOC" ,"2") oMdlTab:SetValue('SEL_DETAIL',"EL_FORPGO" ,"01") oMdlTab:SetValue('SEL_DETAIL',"EL_HRPAGO" ,"12:00:00") oMdlTab:SetValue('SEL_DETAIL',"EL_HORA" ,"11:00:13") oMdlTab:SetValue('SEL_DETAIL',"EL_PREFIXO" ,"EF") oMdlTab:SetValue('SEL_DETAIL',"EL_NUMERO" ,"EFAUT-0009") oMdlTab:SetValue('SEL_DETAIL',"EL_VALOR" ,670) oMdlTab:SetValue('SEL_DETAIL',"EL_BANCO" ,"CX1") oMdlTab:SetValue('SEL_DETAIL',"EL_AGENCIA" ,"00001") oMdlTab:SetValue('SEL_DETAIL',"EL_CONTA" ,"0000000001") //Detalle de los titulos oMdlTab:SetValue('SE1_DETAIL',"E1_FILIAL" , xFilial("SE1")) oMdlTab:SetValue('SE1_DETAIL',"E1_PREFIXO" , "A" ) oMdlTab:SetValue('SE1_DETAIL',"E1_NUM" ,"00000000000000000191" ) oMdlTab:SetValue('SE1_DETAIL',"E1_PARCELA" , "A") oMdlTab:SetValue('SE1_DETAIL',"E1_TIPO" , "NF") oMdlTab:SetValue('SE1_DETAIL',"E1_CLIENTE" , cCliente) oMdlTab:SetValue('SE1_DETAIL',"E1_LOJA" , "01") oMdlTab:SetValue('SE1_DETAIL',"E1_DESCONT" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_MULTA" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_JUROS" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_SALDO" , 1160) oMdlTab:SetValue('SE1_DETAIL',"BAIXAR" , 660) oMdlTab:SetValue('SE1_DETAIL',"RECNO" , 243) oMdlTab:SetValue('SE1_DETAIL',"E1_MOTIVO" , "NOR") oMdlTab:GetModel('SE1_DETAIL' ):AddLine() oMdlTab:SetValue('SE1_DETAIL',"E1_FILIAL" , xFilial("SE1")) oMdlTab:SetValue('SE1_DETAIL',"E1_PREFIXO" , "A" ) oMdlTab:SetValue('SE1_DETAIL',"E1_NUM" ,"00000000000000000189" ) oMdlTab:SetValue('SE1_DETAIL',"E1_PARCELA" , "A") oMdlTab:SetValue('SE1_DETAIL',"E1_TIPO" , "NF") oMdlTab:SetValue('SE1_DETAIL',"E1_CLIENTE" , cCliente) oMdlTab:SetValue('SE1_DETAIL',"E1_LOJA" , "01") oMdlTab:SetValue('SE1_DETAIL',"E1_DESCONT" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_MULTA" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_JUROS" , 0) oMdlTab:SetValue('SE1_DETAIL',"E1_SALDO" , 1160) oMdlTab:SetValue('SE1_DETAIL',"BAIXAR" , 450) oMdlTab:SetValue('SE1_DETAIL',"RECNO" , 244) oMdlTab:SetValue('SE1_DETAIL',"E1_MOTIVO" , "NOR") oMdlTab:SetValue('FAC_DETAIL','FACTOR',"2") oMdlTab:SetValue('GEN_DETAIL',"HOURSAVERECEIPT" , "09:00:13" ) //Se ejecuta el commit If oMdlTab:VldData() oMdlTab:CommitData() Endif //Se obtienen los errores del modelo aError := oMdlTab:GetErrorMessage() If alltrim(aError[7]) <> "" cMsj := aError[7] else // Si no hubo errores al grabar recibo se procede con el timbrado jData['origin'] := "FINA998" jData['imppdf'] := .F. jData['sendemail'] := .F. jData['email'] := "" jData['emailcc'] := "" jData['serie'] := cSerie jData['recibo'] := cRecibo jData['cliente'] := cCliente jData['filial'] := xFilial("SEL") jData['client'] := cCliente // Se validan los titulos que contiene el recibo de cobro. If validTitles(jData) //Timbrado de recibo de cobro FISA815(cRecibo, cSerie,,,@aResTmp,jData) // Ciclo para concatenar la respuesta del timbrado. For nY := 1 To Len(aResTmp) cMsj += aResTmp[nY][3] + cCRLF Next nY Endif Endif CONOUT("Mensaje de proceso: "+cMsj) oMdlTab:DeActivate() Return |
...
Para la generación de diferencia de cambio se requiere informar el parámetro MV_DIFCAMR igual a "S".
A continuación se presenta un ejemplo para realizar la diferencia de cambio a traves del modelo:
...