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 //}