Base de Conocimientos (KB)
Facturación Electrónica : SUNAT > Help Desk : VFPS CPE > Base de Conocimientos (KB)

Ayuda de búsqueda:


Resumen diario de boletas versión 1.1

Solución

Nueva versión del resumen diario de boletas y sus notas vinculadas (obligatorio desde el 01.01.2018)

IMPORTANTE solo Usar este método si no se esta usando el resumen diario de boletas al vuelo (On the fly)

 

Visual Foxpro

*!* VER MENSAJES DE EVENTOS EL SISTEMA
_SCREEN.loCPE.llUsaWait = .T.    &&COLOCA EN .T. SI SE DESEA VER LOS MENSAJES WAIT       
 
*!* GENERAR RESUMEN DIARIO DE BOLETAS
*!* SE PASA COMO PARAMETRO EL NÚMERO DE RUC Y LA SERIE Y NÚMERO DE DOCUMENTO A GENERAR
IF !Generar_XML_Resumen_Boleta("20100066603","20180102-1")
   RETURN .F.
ENDIF 
 
_SCREEN.loCPE.lcFileFirma   = ADDBS(SYS(5) + CURDIR()) + "Librerias\VFPsFirmaCPE.exe"                       &&RUTA DEL ARCHIVO DE FIRMA CPE
_SCREEN.loCPE.lcRutaFileXML = ["] + ADDBS(SYS(5) + CURDIR()) + "FirmaXML\20100066603-RC-20180102-1.xml" + ["] &&RUTA Y NOMBRE DE LARCHIVO XML A FIRMAR Y ENVIAR A SUNAT
_SCREEN.loCPE.lcRutaFileCer = ["] + ADDBS(SYS(5) + CURDIR()) + "Certificados\usr0061.p12" + ["]             &&RUTA Y NOMBRE DEL ARCHIVO PFX PARA EL FIRMADO DEL XML
_SCREEN.loCPE.lcPassCer     = "usr0061"                                                                     &&CONTRASEÑA DEL ARCHIVO PFX
_SCREEN.loCPE.lcUsuario     = "20100066603MODDATOS"                                                         &&USUARIO PARA LA TRANSMISION DE DATOS ENTREGADO POR LA SUNAT CLAVE SOL
_SCREEN.loCPE.lcPass        = "moddatos"                                                                    &&CONTRASEÑA PARA LA TRANSMISION DE DATOS ENTRAGADO POR LA SUNAT CLAVE SOL
 
*!* FIRMADO DEL ARCHIVO XML
IF !_SCREEN.loCPE.VFPs_Firmar_XML ()
   RETURN .F.
ENDIF
 
_SCREEN.loCPE.lnTipoSerCPE  = 3   &&TIPO DE SERVIDOR SUNAT [1 = HOMOLOGACIÓN] [2 = PRODUCCIÓN] [3 = SERVIDOR BETA O PRUEBAS]
 
*!* ENVIAR XML DE RESUMEN DIARIO AL SERVIDOR DE LA SUNAT
IF !_SCREEN.loCPE.VFPs_Enviar_Resumen_Baja ()
   RETURN .F.
ENDIF
 
*!* TODO OK RECIBIDO POR LA SUNAT
IF ALLTRIM(_SCREEN.loCPE.lcStatusCode) == "0" .OR. ALLTRIM(_SCREEN.loCPE.lcStatusCode) == "98"           .OR. ALLTRIM(_SCREEN.loCPE.lcStatusCode) == "098" .OR. ALLTRIM(_SCREEN.loCPE.lcStatusCode) == "0098"
   MESSAGEBOX("Archivo de recepción se guardo en:" + CHR(13) + ;
            _SCREEN.loCPE.lcFileXMLRpta + CHR(13) + ;
            _SCREEN.loCPE.lcDesRptaCPE,64,"VFPs CPE")
  ELSE
   *!* EL RESUMEN DIARIO TIENE OBSERVACIONES SE ANULA EL NÙMERO DE RESUMEN Y SE TIENE QUE ENVIAR UNO NUEVO
   MESSAGEBOX("El resumen diario tiene observaciones [" + _SCREEN.loCPE.lcDesRptaCPE + "]",48,"VFPs CPE")
ENDIF
 
FUNCTION Generar_XML_Resumen_Boleta (lcRuc,lcSerieNum)
   
    IF PCOUNT() < 2
       RETURN .F.
    ENDIF  
   
    *!* NUEVO CLASE DE UTILIDADES PARA EL USO DE CPE
    IF .NOT. "VFPS_MYCLASS_UTIL" $ SET("CLASSLIB")
       SET CLASSLIB TO vfps_myclass_util ADDITIVE
    ENDIF
   
    *!* GENERALES
       _SCREEN.loCPE.lcRucFirmaDigital    = lcRuc                  &&NÚMERO DE RUC DEL RESPONSABLE DE LA FIRMA DIGITAL
       _SCREEN.loCPE.lcRazonEmpresaFirma  = "E & S CARGO S.A.C."   &&RAZON SOCIAL DE LA EMPRESA RESPONSABLE DE LA FIRMA DIGITAL
   
    *!* DATOS DEL EMISOR
    _SCREEN.loCPE.lcRucEmisor          = lcRuc                   &&NÚMERO DE RUC DEL EMISOR
    _SCREEN.loCPE.lcRazonEmpresaEmisor = "E & S CARGO S.A.C."    &&RAZON SOCIAL DE LA EMPRESA EMISORA
 
    *!* FECHAS DEL RESUMEN DIARIO
    _SCREEN.loCPE.lcFechaDocumentos    = "2018-01-01"            &&FECHA DEL RESUMEN DIARIO DE LOS DOCUMENTOS ELECTRÓNICOS
    _SCREEN.loCPE.lcFechaEmision       = "2018-01-02"            &&FECHA DE EMISIÓN DEL RESUMEN DIARIO
 
    *!* MONEDA
    _SCREEN.loCPE.lcMoneda        = "PEN"  &&MONEDA
    _SCREEN.loCpe.lnTotDocumentos = 2      && NÚMERO DE DOCUMENTOS A ENVIAR EN EL RESUMEN DIARIO
 
    *!* AGREGAR INFORMACIÓN DE LOS DUCMENTOS A INFORMAR EN EL RESUMEN DIARIO
    *!* IMPORTANTE.- SI SE VA A INFORMAR UNA NOTA DE CREDITO O DEBITO, CONSIDERAR ENVIAR PRIMERO LA BOLETA
    *!* NOTA.- TODOS LOS PARAMETROS SE PASAN COMO CARACTER
    *!*
    *!* PARAMETROS
    *!* lnNroItem     = NÚMERO DE LINEA
    *!* lcTipoDoc     = TIPO DE DOCUMENTO VER. CATÁLOGO No 01 SUNAT http://www.sunat.gob.pe/legislacion/superin/2015/anexoD-357-2015.pdf
    *!* lcSerNumDoc   = SERIE Y NÙMERO DEL CORRELATIVO DEL DOCUMENTO
    *!* lcNumDocAdq   = NÙMERO DE DOCUMENTO DE IDENTIDAD DEL ADQUIRENTE O USUARIO
    *!* lcTipoDocAdq  = TIPO DE DOCUMENTO DE IDENTIDAD DEL ADQUIRENTE O USUARIO VER. CATÁLOGO No 06 SUNAT http://www.sunat.gob.pe/legislacion/superin/2015/anexoD-357-2015.pdf
    *!* lcStatusItem  = ESTADO O CONDICÒN DEL ITEM VER. CATÁLOGO No 19 SUNAT http://www.sunat.gob.pe/legislacion/superin/2015/anexoD-357-2015.pdf
    *!* lcTotalDoc    = IMPORTE TOTAL DE LA VENTA
    *!* lcTotOpeGra   = TOTAL VALOR VENTA - OPERACIONES GRAVADAS
    *!* lcTotOpeExo   = TOTAL VALOR VENTA - OPERACIONES EXONERADAS
    *!* lcTotOpeIna   = TOTAL VALOR VENTA - OPERACIONES INAFECTAS
    *!* lcTotOpeGratu = TOTAL VALOR VENTA - OPERACIONES GRATUITAS
    *!* lcOtrosCargos = TOTAL VALOR VENTA - OTROS CARGOS
    *!* lcISC         = TOTAL ISC - IMPUESTO SELECTIVO AL CONSUMO
    *!* lcIGV         = TOTAL IGV
    *!* lcMoneda      = TIPO DE MONEDA DEL DOCUMENTO ELECTRÒNICO
    *!* lcNumDocMod   = SERIE Y NÙMERO DE DOCUMENTO DE LA BOLETA QUE SE MODIFICA (SOLO CUANDO ES UNA NOTA DE CRÈDITO O DÈBITO, DE LO CONTRARIO DEJAR VACIO)
    *!* lcTipoDocMod  = TIPO DE DOCUMENTO QUE MODIFICA (SOLO CUANDO ES UNA NOTA DE CRÈDITO O DÈBITO, DE LO CONTRARIO DEJAR VACIO)
   
    _SCREEN.loCPE.Add_Documento_ResumenDiario1_1(1,"03","BL01-00000015","15854987","1","1","118.00","100.00","0.00","0.00","0.00","0.00","0.00","18.00","PEN","","")
    _SCREEN.loCPE.Add_Documento_ResumenDiario1_1(2,"07","BK01-00000001","15854987","1","1","118.00","100.00","0.00","0.00","0.00","0.00","0.00","18.00","PEN","BL01-00000015","03")
 
    *!* NUEVO CREANDO EL OBJETO PARA LA GENERACION DEL ARCHIVO XML
    *!* SE PASA COMO PARAMETRO EL NÚMERO DE RUC
    _SCREEN.loCPE.loXML = CREATEOBJECT("vfps_gen_xml",lcRuc)
   
    IF VARTYPE(_SCREEN.loCPE.loXML) <> "O"
       RETURN .F.
    ENDIF  
   
    *!* SE PASA COMO PARAMETRO EL NÚMERO DE RUC Y EL NÚMERO DE DOCUMENTO A GENERAR
    *!* PARA RESUMEN VERSIÒN 1.1 SE AUMENTE EL PARAMETRO .T.
      
    IF !_SCREEN.loCPE.loXML.VFPs_Gen_XML_Resumen_Boleta (lcRuc,lcSerieNum,.T.)
       RETURN .F.
    ENDIF
 
    RETURN .T.
ENDFUNC                     
 

 
 
Visual Basic .NET
 
PrivateSub Button7_Click(sender AsObject, e AsEventArgs) Handles Button7.Click
        'EJEMPLO GENERAR , FIRMAR, ENVIAR Y RECEPCINAR LA RESUMEN DIARIO DE BOLETAS
        'VERSIÓN 1.1
 
        'VER MENSAJES DE EVENTOS EL SISTEMA
        loCPE.llusawait = True   'COLOCA EN True SI SE DESEA VER LOS MENSAJES WAIT 
 
        'GENERAR FACTURA EN ARCHIVO XML
        'SE PASA COMO PARAMETRO EL NÚMERO DE RUC Y LA SERIE Y NÚMERO DE DOCUMENTO A GENERAR
        If Not Generar_XML_Resumen_Boleta("10437285085", "20180102-1") Then
            Return
        EndIf
 
        loCPE.lcfilefirma = loCPE.lcdirins & "Librerias\VFPsFirmaCPE.exe"   'RUTA DEL ARCHIVO DE FIRMA CPE
        'TIPOS DE DOCUMENTO
        'PARA CUANDO SE CREAN LOS ARCHIVOS XML DEPENDIENDO DEL TIPO DE DOCUMENTO CONSIDERAR
        'RA = COMUNICACIÓN DE BAJA
        loCPE.lcrutafilexml = loCPE.lcdirins & "FirmaXML\10437285085-RC-20180102-1.xml"     'RUTA Y NOMBRE DE LARCHIVO XML A FIRMAR Y ENVIAR A SUNAT
        loCPE.lcrutafilecer = loCPE.lcdirins & "Certificados\usr0061.p12"                   'RUTA Y NOMBRE DEL ARCHIVO PFX PARA EL FIRMADO DEL XML
        loCPE.lcpasscer = "usr0061"                                                         'CONTRASEÑA DEL ARCHIVO PFX
        loCPE.lcusuario = "10437285085MODDATOS"                                             'USUARIO PARA LA TRANSMISION DE DATOS ENTREGADO POR LA SUNAT CLAVE SOL
        loCPE.lcpass = "moddatos"                                                           'CONTRASEÑA PARA LA TRANSMISION DE DATOS ENTRAGADO POR LA SUNAT CLAVE SOL
 
        'FIRMADO DEL ARCHIVO XML
        If Not loCPE.vfps_firmar_xml() Then
            Return
        EndIf
 
        loCPE.lntiposercpe = 3 'TIPO DE SERVIDOR SUNAT [1 = HOMOLOGACIÓN] [2 = PRODUCCIÓN] [3 = SERVIDOR BETA O PRUEBAS]
 
        'ENVIAR XML AL SERVIDOR DE LA SUNAT
        If Not loCPE.vfps_enviar_resumen_baja(False) Then
            Return
        EndIf
 
        'TODO OK RECIBIDO POR LA SUNAT
        If loCPE.lcstatuscode = "0"Or loCPE.lcstatuscode = "98"Or loCPE.lcstatuscode = "098"Or loCPE.lcstatuscode = "0098"Then
            MsgBox("Archivo de recepción se guardo en:" & vbCrLf & loCPE.lcfilexmlrpta & vbCrLf & loCPE.lcdesrptacpe, 64, "VFPs CPE")
        Else
            'EL RESUMEN DIARIO TIENE OBSERVACIONES SE ANULA EL NÙMERO DE RESUMEN Y SE TIENE QUE ENVIAR UNO NUEVO
            MsgBox("El resumen diario tiene observaciones [" & loCPE.lcdesrptacpe & "]", 48, "VFPs CPE")
        EndIf
 
        'ADICIONAL INFORMACIÓN ENVIADA POR LA SUNAT
        'RESPUESTA
        'loCPE.lcDesRptaCPE
        'CÓDIGO DE RESPUESTA
        'loCPE.lcStatusCode)
    EndSub 
 
        Function Generar_XML_Resumen_Boleta(lcRuc AsString, lcSerieNum AsString) AsInteger
        'CREAR ARCHIVO XML PARA LA FIRMA
        'AQUI LLENAS LOS PARAMETROS CON LA INFORMACIÓN Y DATOS DE TU SISTEMA DE FACTURACIÓN
 
        'GENERALES
        loCPE.lcrucfirmadigital = lcRuc                        'NÚMERO DE RUC DEL RESPONSABLE DE LA FIRMA DIGITAL
        loCPE.lcrazonempresafirma = "VFPSTEAM BI SOLUTIONS"    'RAZON SOCIAL DE LA EMPRESA RESPONSABLE DE LA FIRMA DIGITAL
 
        'DATOS DEL EMISOR
        loCPE.lcrucemisor = lcRuc                              'NÚMERO DE RUC DEL EMISOR
        loCPE.lcrazonempresaemisor = "VFPSTEAM BI SOLUTIONS"   'RAZON SOCIAL DE LA EMPRESA EMISORA
 
        'FECHAS DEL RESUMEN DIARIO
        loCPE.lcfechadocumentos = "2018-01-02"              'FECHA DE LOS DOCUMENTOS ELECTRÓNICOS
        loCPE.lcfechaemision = "2018-01-02"                 'FECHA DE EMISIÓN DEL RESUMEN DIARIO
 
        loCPE.lcmoneda = "PEN"'MONEDA
        loCPE.lntotdocumentos = 2 'NÚMERO DE DOCUMENTOS A ENVIAR EN EL RESUMEN DIARIO
 
        'AGREGAR INFORMACIÓN DE LOS DUCMENTOS A INFORMAR EN EL RESUMEN DIARIO
        'IMPORTANTE.- SI SE VA A INFORMAR UNA NOTA DE CREDITO O DEBITO, CONSIDERAR ENVIAR PRIMERO LA BOLETA
        'NOTA.- TODOS LOS PARAMETROS SE PASAN COMO CARACTER
 
        'PARAMETROS
        'lnNroItem     = NÚMERO DE LINEA
        'lcTipoDoc     = TIPO DE DOCUMENTO VER. CATÁLOGO No 01 SUNAT http://www.sunat.gob.pe/legislacion/superin/2015/anexoD-357-2015.pdf
        'lcSerNumDoc   = SERIE Y NÙMERO DEL CORRELATIVO DEL DOCUMENTO
        'lcNumDocAdq   = NÙMERO DE DOCUMENTO DE IDENTIDAD DEL ADQUIRENTE O USUARIO
        'lcTipoDocAdq  = TIPO DE DOCUMENTO DE IDENTIDAD DEL ADQUIRENTE O USUARIO VER. CATÁLOGO No 06 SUNAT http://www.sunat.gob.pe/legislacion/superin/2015/anexoD-357-2015.pdf
        'lcStatusItem  = ESTADO O CONDICÒN DEL ITEM VER. CATÁLOGO No 19 SUNAT http://www.sunat.gob.pe/legislacion/superin/2015/anexoD-357-2015.pdf
        'lcTotalDoc    = IMPORTE TOTAL DE LA VENTA
        'lcTotOpeGra   = TOTAL VALOR VENTA - OPERACIONES GRAVADAS
        'lcTotOpeExo   = TOTAL VALOR VENTA - OPERACIONES EXONERADAS
        'lcTotOpeIna   = TOTAL VALOR VENTA - OPERACIONES INAFECTAS
        'lcTotOpeGratu = TOTAL VALOR VENTA - OPERACIONES GRATUITAS
        'lcOtrosCargos = TOTAL VALOR VENTA - OTROS CARGOS
        'lcISC         = TOTAL ISC - IMPUESTO SELECTIVO AL CONSUMO
        'lcIGV         = TOTAL IGV
        'lcMoneda      = TIPO DE MONEDA DEL DOCUMENTO ELECTRÒNICO
        'lcNumDocMod   = SERIE Y NÙMERO DE DOCUMENTO DE LA BOLETA QUE SE MODIFICA (SOLO CUANDO ES UNA NOTA DE CRÈDITO O DÈBITO, DE LO CONTRARIO DEJAR VACIO)
        'lcTipoDocMod  = TIPO DE DOCUMENTO QUE MODIFICA (SOLO CUANDO ES UNA NOTA DE CRÈDITO O DÈBITO, DE LO CONTRARIO DEJAR VACIO)
 
        loCPE.add_documento_resumendiario1_1(1, "03", "BL01-00000015", "15854987", "1", "1", "118.00", "100.00", "0.00", "0.00", "0.00", "0.00", "0.00", "18.00", "PEN", "", "")
        loCPE.add_documento_resumendiario1_1(2, "07", "BK01-00000001", "15854987", "1", "1", "118.00", "100.00", "0.00", "0.00", "0.00", "0.00", "0.00", "18.00", "PEN", "BL01-00000015", "03")
 
        'SE PASA COMO PARAMETRO EL NÚMERO DE RUC Y EL NÚMERO DE DOCUMENTO A GENERAR
        'PARA RESUMEN VERSIÒN 1.1 SE AUMENTE EL PARAMETRO true
 
        If Not loCPE.vfps_gen_xml_resumen_boleta(lcRuc, lcSerieNum, True) Then
            Return False
        EndIf
 
        Return True
    EndFunction
 

 
 
VFPSTEAM BI SOLUTIONS
 
 
¿Le ha sido útil este artículo? si / no
Artículos relacionados Generar resumen diario de boletas al vuelo (On the fly)
NUEVO : Enviar CPE por resumen diario
Generar comunicación de baja al vuelo (On the fly)
Consultar estado de un CPE y descargar CDR
Agregar documentos a la página de custodia
Detalles del artículo
ID de artículo: 66
Categoria: Knowledgebase
Fecha de alta: 2018-01-03 05:00:37
Vistas: 2806
valoración (Votar): valoración del artículo 3.5/5.0 (11)

 
« Volver atras

 
Powered by Help Desk Software HESK, brought to you by SysAid