108 lines
3.4 KiB
Go
108 lines
3.4 KiB
Go
package procesar
|
|
|
|
import (
|
|
"daemonService/internal/models/obtencionCodigos"
|
|
oc "daemonService/internal/models/obtencionCodigos/request"
|
|
"encoding/xml"
|
|
"fmt"
|
|
)
|
|
|
|
func codigoGenerarSOAPRequest(s obtencionCodigos.CuisServiceModel, solicitud oc.SolicitudCuisCufd) (string, error) {
|
|
|
|
var xmlBytes []byte
|
|
var err error
|
|
var envelope oc.SOAPRequestEnvelope
|
|
var envelopeCufd oc.SOAPRequestEnvelopeCufd
|
|
switch solicitud.Cuis {
|
|
case "":
|
|
envelope = oc.SOAPRequestEnvelope{
|
|
XmlnsSoapenv: "http://schemas.xmlsoap.org/soap/envelope/",
|
|
XmlnsSiat: "https://siat.impuestos.gob.bo/",
|
|
Header: &oc.SOAPRequestHeader{},
|
|
Body: oc.SOAPRequestBody{
|
|
Operacion: oc.OperacionXML{
|
|
XMLName: xml.Name{Local: "siat:" + s.TagNames},
|
|
Solicitud: oc.SolicitudCuisCufd{
|
|
CodigoAmbiente: solicitud.CodigoAmbiente,
|
|
CodigoModalidad: solicitud.CodigoModalidad,
|
|
CodigoPuntoVenta: solicitud.CodigoPuntoVenta,
|
|
CodigoSistema: solicitud.CodigoSistema,
|
|
CodigoSucursal: solicitud.CodigoSucursal,
|
|
Nit: solicitud.Nit,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
// Se genera el XML con indentación para mayor legibilidad
|
|
xmlBytes, err = xml.MarshalIndent(envelope, "", " ")
|
|
if err != nil {
|
|
return "", fmt.Errorf("error al generar XML: %w", err)
|
|
}
|
|
break
|
|
default:
|
|
envelopeCufd = oc.SOAPRequestEnvelopeCufd{
|
|
XmlnsSoapenv: "http://schemas.xmlsoap.org/soap/envelope/",
|
|
XmlnsSiat: "https://siat.impuestos.gob.bo/",
|
|
Header: &oc.SOAPRequestHeaderCufd{},
|
|
Body: oc.SOAPRequestBodyCufd{
|
|
Operacion: oc.OperacionXMLCufd{
|
|
XMLName: xml.Name{Local: "siat:" + s.TagNamesCufd},
|
|
Solicitud: oc.SolicitudCuisCufd{
|
|
CodigoAmbiente: solicitud.CodigoAmbiente,
|
|
CodigoModalidad: solicitud.CodigoModalidad,
|
|
CodigoPuntoVenta: solicitud.CodigoPuntoVenta,
|
|
CodigoSistema: solicitud.CodigoSistema,
|
|
CodigoSucursal: solicitud.CodigoSucursal,
|
|
Cuis: solicitud.Cuis,
|
|
Nit: solicitud.Nit,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
// Se genera el XML con indentación para mayor legibilidad
|
|
xmlBytes, err = xml.MarshalIndent(envelopeCufd, "", " ")
|
|
if err != nil {
|
|
return "", fmt.Errorf("error al generar XML: %w", err)
|
|
}
|
|
break
|
|
}
|
|
|
|
// Se concatena la cabecera XML
|
|
soapRequest := xml.Header + string(xmlBytes)
|
|
|
|
return soapRequest, nil
|
|
}
|
|
|
|
//func codigoGenerarSOAPRequest(s obtencionCodigos.CuisServiceModel, solicitud oc.SolicitudCuisCufd) (string, error) {
|
|
//
|
|
// envelope := oc.SOAPRequestEnvelope{
|
|
// XmlnsSoapenv: "http://schemas.xmlsoap.org/soap/envelope/",
|
|
// XmlnsSiat: "https://siat.impuestos.gob.bo/",
|
|
// Header: &oc.SOAPRequestHeader{},
|
|
// Body: oc.SOAPRequestBody{
|
|
// Operacion: oc.OperacionXML{
|
|
// XMLName: xml.Name{Local: "siat:" + s.TagNames},
|
|
// Solicitud: oc.SolicitudCuisCufd{
|
|
// CodigoAmbiente: solicitud.CodigoAmbiente,
|
|
// CodigoModalidad: solicitud.CodigoModalidad,
|
|
// CodigoPuntoVenta: solicitud.CodigoPuntoVenta,
|
|
// CodigoSistema: solicitud.CodigoSistema,
|
|
// CodigoSucursal: solicitud.CodigoSucursal,
|
|
// Nit: solicitud.Nit,
|
|
// },
|
|
// },
|
|
// },
|
|
// }
|
|
//
|
|
// // Se genera el XML con indentación para mayor legibilidad
|
|
// xmlBytes, err := xml.MarshalIndent(envelope, "", " ")
|
|
// if err != nil {
|
|
// return "", fmt.Errorf("error al generar XML: %w", err)
|
|
// }
|
|
//
|
|
// // Se concatena la cabecera XML
|
|
// soapRequest := xml.Header + string(xmlBytes)
|
|
//
|
|
// return soapRequest, nil
|
|
//}
|