private void BtnCumplir_Click(object sender, EventArgs e)
        {
            string            codigo     = DgDespachos.Rows[DgDespachos.CurrentRow.Index].Cells[0].Value.ToString();
            bool              validacion = true;
            RespuestaRndc     retorno    = new RespuestaRndc();
            BPMServicesClient client     = new BPMServicesClient();
            //Buscamos los terceros de ese despacho para transmitirlos
            string           parametrosJson   = "{\"codigoDespacho\":\"" + codigo + "\"}";
            string           jsonRespuesta    = ApiControlador.ApiPost("/transporte/api/windows/despacho/rndccumplir", parametrosJson);
            ApiElementosRndc apiElementosRndc = ser.Deserialize <ApiElementosRndc>(jsonRespuesta);
            string           xmlGuia          = @"<?xml version='1.0' encoding='ISO-8859-1' ?>
                <root>
                    <acceso>
                            <username>" + apiElementosRndc.configuracion.usuarioRndc + @"</username>
                            <password>" + apiElementosRndc.configuracion.claveRndc + @"</password>
                    </acceso>
                    <solicitud>
                        <tipo>1</tipo>
                        <procesoid>5</procesoid>
                    </solicitud>
                    <variables>
                        <NUMNITEMPRESATRANSPORTE>" + apiElementosRndc.configuracion.empresaRndc + @"</NUMNITEMPRESATRANSPORTE>
                        <CONSECUTIVOREMESA>" + apiElementosRndc.despacho.numero + @"</CONSECUTIVOREMESA>
                        <NUMMANIFIESTOCARGA>" + apiElementosRndc.despacho.numero + @"</NUMMANIFIESTOCARGA>
                        <TIPOCUMPLIDOREMESA>C</TIPOCUMPLIDOREMESA>
                        <FECHALLEGADACARGUE>" + apiElementosRndc.despacho.fechaLlegadaCargue + @"</FECHALLEGADACARGUE>
                        <HORALLEGADACARGUEREMESA>" + apiElementosRndc.despacho.horaLlegadaCargue + @"</HORALLEGADACARGUEREMESA>
                        <FECHAENTRADACARGUE>" + apiElementosRndc.despacho.fechaEntradaCargue + @"</FECHAENTRADACARGUE>
                        <HORAENTRADACARGUEREMESA>" + apiElementosRndc.despacho.horaEntradaCargue + @"</HORAENTRADACARGUEREMESA>
                        <FECHASALIDACARGUE>" + apiElementosRndc.despacho.fechaSalidaCargue + @"</FECHASALIDACARGUE>
                        <HORASALIDACARGUEREMESA>" + apiElementosRndc.despacho.horaSalidaCargue + @"</HORASALIDACARGUEREMESA>
                                                                       
                        <FECHALLEGADADESCARGUE>" + apiElementosRndc.despacho.fechaLlegadaDescargue + @"</FECHALLEGADADESCARGUE>
                        <HORALLEGADADESCARGUECUMPLIDO>" + apiElementosRndc.despacho.horaLlegadaDescargue + @"</HORALLEGADADESCARGUECUMPLIDO>
                        <FECHAENTRADADESCARGUE>" + apiElementosRndc.despacho.fechaEntradaDescargue + @"</FECHAENTRADADESCARGUE>
                        <HORAENTRADADESCARGUECUMPLIDO>" + apiElementosRndc.despacho.horaEntradaDescargue + @"</HORAENTRADADESCARGUECUMPLIDO>
                        <FECHASALIDADESCARGUE>" + apiElementosRndc.despacho.fechaSalidaDescargue + @"</FECHASALIDADESCARGUE>
                        <HORASALIDADESCARGUECUMPLIDO>" + apiElementosRndc.despacho.horaSalidaDescargue + @"</HORASALIDADESCARGUECUMPLIDO>                                    
                        <CANTIDADENTREGADA>" + apiElementosRndc.despacho.pesoReal + @"</CANTIDADENTREGADA></variables>
                    </root>";

            AtenderMensajeRNDCRequest solicitudGuia = new AtenderMensajeRNDCRequest(xmlGuia);
            var           respuestaGuia             = client.AtenderMensajeRNDC(solicitudGuia);
            var           textXmlGuia    = respuestaGuia.@return;
            XmlSerializer serializerGuia = new XmlSerializer(typeof(RespuestaRndc));

            using (TextReader reader = new StringReader(textXmlGuia))
            {
                //de esta manera se deserializa
                retorno = (RespuestaRndc)serializerGuia.Deserialize(reader);
                if (retorno.ErrorMSG != null)
                {
                    string mensajeError = retorno.ErrorMSG.Substring(0, 9);
                    if (mensajeError != "DUPLICADO")
                    {
                        MessageBox.Show(this, "Guia " + apiElementosRndc.despacho.codigoDespachoPk + " " + retorno.ErrorMSG, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        validacion = false;
                    }
                }
            }

            if (validacion == true)
            {
                string xmlManifiesto = @"<?xml version='1.0' encoding='ISO-8859-1' ?>
                    <root>
                        <acceso>
                            <username>" + apiElementosRndc.configuracion.usuarioRndc + @"</username>
                            <password>" + apiElementosRndc.configuracion.claveRndc + @"</password>
                        </acceso >
                        <solicitud>
                            <tipo>1</tipo>
                            <procesoid>6</procesoid>
                        </solicitud>
                        <variables>
                            <NUMNITEMPRESATRANSPORTE>" + apiElementosRndc.configuracion.empresaRndc + @"</NUMNITEMPRESATRANSPORTE>
                            <NUMMANIFIESTOCARGA>" + apiElementosRndc.despacho.numero + @"</NUMMANIFIESTOCARGA>                    
                            <TIPOCUMPLIDOMANIFIESTO>C</TIPOCUMPLIDOMANIFIESTO>   
                            <FECHAENTREGADOCUMENTOS>" + apiElementosRndc.despacho.fechaEntrega + @"</FECHAENTREGADOCUMENTOS>
                            <VALORADICIONALHORASCARGUE>0</VALORADICIONALHORASCARGUE> 
                            <VALORSOBREANTICIPO>0</VALORSOBREANTICIPO>
                        </variables>
                    </root>";
                AtenderMensajeRNDCRequest solicitudManifiesto = new AtenderMensajeRNDCRequest(xmlManifiesto);
                var           respuestaManifiesto             = client.AtenderMensajeRNDC(solicitudManifiesto);
                var           textXmlManifiesto    = respuestaManifiesto.@return;
                XmlSerializer serializerManifiesto = new XmlSerializer(typeof(RespuestaRndc));
                using (TextReader reader = new StringReader(textXmlManifiesto))
                {
                    //de esta manera se deserializa
                    retorno = (RespuestaRndc)serializerManifiesto.Deserialize(reader);
                    if (retorno.ErrorMSG != null)
                    {
                        string mensajeError = retorno.ErrorMSG.Substring(0, 9);
                        if (mensajeError != "DUPLICADO")
                        {
                            MessageBox.Show(this, "Manifiesto cumplido " + apiElementosRndc.despacho.codigoDespachoPk + " " + retorno.ErrorMSG, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        else
                        {
                            MessageBox.Show(this, "Manifinifiesto ya fue cumplido con anterioridad", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            ApiControlador.ApiPost("/transporte/api/windows/despacho/rndcasignarcumplido", "{\"codigoDespacho\":\"" + apiElementosRndc.despacho.codigoDespachoPk + "\"}");
                            LlenarDatosApi();
                        }
                    }
                    else
                    {
                        ApiControlador.ApiPost("/transporte/api/windows/despacho/rndcasignarcumplido", "{\"codigoDespacho\":\"" + apiElementosRndc.despacho.codigoDespachoPk + "\"}");
                        LlenarDatosApi();
                    }
                }
            }
        }
        private void BtnEnviar_Click(object sender, EventArgs e)
        {
            string            codigo     = DgDespachos.Rows[DgDespachos.CurrentRow.Index].Cells[0].Value.ToString();
            bool              validacion = true;
            RespuestaRndc     retorno    = new RespuestaRndc();
            BPMServicesClient client     = new BPMServicesClient();
            //Buscamos los terceros de ese despacho para transmitirlos
            string                parametrosJson   = "{\"codigoDespacho\":\"" + codigo + "\"}";
            string                jsonRespuesta    = ApiControlador.ApiPost("/transporte/api/windows/despacho/rndc", parametrosJson);
            ApiElementosRndc      apiElementosRndc = ser.Deserialize <ApiElementosRndc>(jsonRespuesta);
            List <ApiTerceroRndc> apiTerceroLista  = ser.Deserialize <List <ApiTerceroRndc> >(jsonRespuesta);

            foreach (ApiTerceroRndc apiTercero in apiElementosRndc.terceros)
            {
                string xmlTercero = "";
                if (apiTercero.conductor == "0")
                {
                    xmlTercero = @"<?xml version='1.0' encoding='ISO-8859-1' ?>
                            <root>
                                <acceso>
                                    <username>" + apiElementosRndc.configuracion.usuarioRndc + @"</username>
                                    <password>" + apiElementosRndc.configuracion.claveRndc + @"</password>
                                </acceso>
                                <solicitud>
                                    <tipo>1</tipo>
                                    <procesoid>11</procesoid>
                                </solicitud>
                                <variables>
                                    <NUMNITEMPRESATRANSPORTE>" + apiElementosRndc.configuracion.empresaRndc + @"</NUMNITEMPRESATRANSPORTE>
                                    <CODTIPOIDTERCERO>" + apiTercero.identificacionTipo + @"</CODTIPOIDTERCERO>
                                    <NUMIDTERCERO>" + apiTercero.identificacion + @"</NUMIDTERCERO>
                                    <NOMIDTERCERO>" + apiTercero.nombre1 + @"</NOMIDTERCERO>
                                    <PRIMERAPELLIDOIDTERCERO>" + apiTercero.apellido1 + @"</PRIMERAPELLIDOIDTERCERO>    
                                    <SEGUNDOAPELLIDOIDTERCERO> " + apiTercero.apellido2 + @"</SEGUNDOAPELLIDOIDTERCERO>
                                    <CODSEDETERCERO>" + apiTercero.codigoSede + @"</CODSEDETERCERO>
                                    <NOMSEDETERCERO>" + apiTercero.nombreSede + @"</NOMSEDETERCERO>
                                    <NUMTELEFONOCONTACTO>" + apiTercero.telefono + @"</NUMTELEFONOCONTACTO>
                                    <NOMENCLATURADIRECCION>" + apiTercero.direccion + @"</NOMENCLATURADIRECCION>
                                    <CODMUNICIPIORNDC>" + apiTercero.codigoCiudad + @"</CODMUNICIPIORNDC>
                                 </variables>
                              </root>";
                }

                if (apiTercero.conductor == "1")
                {
                    xmlTercero = @"<?xml version='1.0' encoding='ISO-8859-1' ?>
                            <root>
                                <acceso>
                                    <username>" + apiElementosRndc.configuracion.usuarioRndc + @"</username>
                                    <password>" + apiElementosRndc.configuracion.claveRndc + @"</password>
                                </acceso>
                                <solicitud>
                                    <tipo>1</tipo>
                                    <procesoid>11</procesoid>
                                </solicitud>
                                <variables>
                                    <NUMNITEMPRESATRANSPORTE>" + apiElementosRndc.configuracion.empresaRndc + @"</NUMNITEMPRESATRANSPORTE>
                                    <CODTIPOIDTERCERO>" + apiTercero.identificacionTipo + @"</CODTIPOIDTERCERO>
                                    <NUMIDTERCERO>" + apiTercero.identificacion + @"</NUMIDTERCERO>
                                    <NOMIDTERCERO>" + apiTercero.nombre1 + @"</NOMIDTERCERO>
                                    <PRIMERAPELLIDOIDTERCERO>" + apiTercero.apellido1 + @"</PRIMERAPELLIDOIDTERCERO>    
                                    <SEGUNDOAPELLIDOIDTERCERO> " + apiTercero.apellido2 + @"</SEGUNDOAPELLIDOIDTERCERO>
                                    <CODSEDETERCERO>" + apiTercero.codigoSede + @"</CODSEDETERCERO>
                                    <NOMSEDETERCERO>" + apiTercero.nombreSede + @"</NOMSEDETERCERO>
                                    <NUMTELEFONOCONTACTO>" + apiTercero.telefono + @"</NUMTELEFONOCONTACTO>
                                    <NOMENCLATURADIRECCION>" + apiTercero.direccion + @"</NOMENCLATURADIRECCION>
                                    <CODMUNICIPIORNDC>" + apiTercero.codigoCiudad + @"</CODMUNICIPIORNDC>
                                    <CODCATEGORIALICENCIACONDUCCION>" + apiTercero.categoriaLicencia + @"</CODCATEGORIALICENCIACONDUCCION>
                                    <NUMLICENCIACONDUCCION>" + apiTercero.numeroLicencia + @"</NUMLICENCIACONDUCCION>
                                    <FECHAVENCIMIENTOLICENCIA>" + apiTercero.fechaVenceLicencia + @"</FECHAVENCIMIENTOLICENCIA>
                                 </variables>
                              </root>";
                }

                AtenderMensajeRNDCRequest solicitudTercero = new AtenderMensajeRNDCRequest(xmlTercero);
                var           respuestaTercero             = client.AtenderMensajeRNDC(solicitudTercero);
                var           textXmlTercero    = respuestaTercero.@return;
                XmlSerializer serializerTercero = new XmlSerializer(typeof(RespuestaRndc));
                using (TextReader reader = new StringReader(textXmlTercero))
                {
                    //de esta manera se deserializa
                    retorno = (RespuestaRndc)serializerTercero.Deserialize(reader);
                    if (retorno.ErrorMSG != null)
                    {
                        string mensajeError = retorno.ErrorMSG.Substring(0, 9);
                        if (mensajeError != "DUPLICADO" && mensajeError != "Access vi")
                        {
                            MessageBox.Show(this, "Tercero " + apiTercero.identificacion + " " + retorno.ErrorMSG, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            validacion = false;
                        }
                    }
                }
            }


            if (validacion == true)
            {
                string xmlVehiculo = @"<?xml version='1.0' encoding='ISO-8859-1' ?>
                        <root>
                            <acceso>
                                <username>" + apiElementosRndc.configuracion.usuarioRndc + @"</username>
                                <password>" + apiElementosRndc.configuracion.claveRndc + @"</password>
                            </acceso>
                            <solicitud>
                                <tipo>1</tipo>
                                <procesoid>12</procesoid>
                            </solicitud>
                            <variables>
                                <NUMNITEMPRESATRANSPORTE>" + apiElementosRndc.configuracion.empresaRndc + @"</NUMNITEMPRESATRANSPORTE>
                                <NUMPLACA>" + apiElementosRndc.vehiculo.codigoVehiculoPk + @"</NUMPLACA>
                                <CODCONFIGURACIONUNIDADCARGA>" + apiElementosRndc.vehiculo.configuracion + @"</CODCONFIGURACIONUNIDADCARGA>
                                <NUMEJES>" + apiElementosRndc.vehiculo.numeroEjes + @"</NUMEJES>
                                <CODMARCAVEHICULOCARGA>" + apiElementosRndc.vehiculo.codigoMarca + @"</CODMARCAVEHICULOCARGA>
                                <CODLINEAVEHICULOCARGA>" + apiElementosRndc.vehiculo.codigoLinea + @"</CODLINEAVEHICULOCARGA>
                                <ANOFABRICACIONVEHICULOCARGA>" + apiElementosRndc.vehiculo.modelo + @"</ANOFABRICACIONVEHICULOCARGA>
                                <CODTIPOCOMBUSTIBLE>" + apiElementosRndc.vehiculo.tipoCombustible + @"</CODTIPOCOMBUSTIBLE>
                                <PESOVEHICULOVACIO>" + apiElementosRndc.vehiculo.pesoVacio + @"</PESOVEHICULOVACIO>
                                <CODCOLORVEHICULOCARGA>" + apiElementosRndc.vehiculo.codigoColor + @"</CODCOLORVEHICULOCARGA>
                                <CODTIPOCARROCERIA>" + apiElementosRndc.vehiculo.tipoCarroceria + @"</CODTIPOCARROCERIA>
                                <CODTIPOIDPROPIETARIO>" + apiElementosRndc.vehiculo.tipoIdentificacionPropietario + @"</CODTIPOIDPROPIETARIO>
                                <NUMIDPROPIETARIO>" + apiElementosRndc.vehiculo.numeroIdentificacionPropietario + @"</NUMIDPROPIETARIO>
                                <CODTIPOIDTENEDOR>" + apiElementosRndc.vehiculo.tipoIdentificacionPoseedor + @"</CODTIPOIDTENEDOR>
                                <NUMIDTENEDOR>" + apiElementosRndc.vehiculo.numeroIdentificacionPoseedor + @"</NUMIDTENEDOR>
                                <NUMSEGUROSOAT>" + apiElementosRndc.vehiculo.numeroPoliza + @"</NUMSEGUROSOAT>
                                <FECHAVENCIMIENTOSOAT>" + apiElementosRndc.vehiculo.fechaVencePoliza + @"</FECHAVENCIMIENTOSOAT>
                                <NUMNITASEGURADORASOAT>" + apiElementosRndc.vehiculo.numeroIdentificacionAseguradora + @"</NUMNITASEGURADORASOAT>
                                <CAPACIDADUNIDADCARGA>" + apiElementosRndc.vehiculo.capacidad + @"</CAPACIDADUNIDADCARGA>
                                <UNIDADMEDIDACAPACIDAD>1</UNIDADMEDIDACAPACIDAD>
                            </variables>
                        </root>";

                AtenderMensajeRNDCRequest solicitudVehiculo = new AtenderMensajeRNDCRequest(xmlVehiculo);
                var           respuestaVehiculo             = client.AtenderMensajeRNDC(solicitudVehiculo);
                var           textXmlVehiculo    = respuestaVehiculo.@return;
                XmlSerializer serializerVehiculo = new XmlSerializer(typeof(RespuestaRndc));
                using (TextReader reader = new StringReader(textXmlVehiculo))
                {
                    //de esta manera se deserializa
                    retorno = (RespuestaRndc)serializerVehiculo.Deserialize(reader);
                    if (retorno.ErrorMSG != null)
                    {
                        string mensajeError = retorno.ErrorMSG.Substring(0, 9);
                        if (mensajeError != "DUPLICADO")
                        {
                            MessageBox.Show(this, "Vehiculo " + apiElementosRndc.vehiculo.codigoVehiculoPk + " " + retorno.ErrorMSG, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            validacion = false;
                        }
                    }
                }


                if (validacion == true)
                {
                    if (apiElementosRndc.remolque != null)
                    {
                        string xmlRemolque = @"<?xml version='1.0' encoding='ISO-8859-1' ?>
                        <root>
                            <acceso>
                                <username>" + apiElementosRndc.configuracion.usuarioRndc + @"</username>
                                <password>" + apiElementosRndc.configuracion.claveRndc + @"</password>
                            </acceso>
                            <solicitud>
                                <tipo>1</tipo>
                                <procesoid>12</procesoid>
                            </solicitud>
                            <variables>
                                <NUMNITEMPRESATRANSPORTE>" + apiElementosRndc.configuracion.empresaRndc + @"</NUMNITEMPRESATRANSPORTE>
                                <NUMPLACA>" + apiElementosRndc.remolque.codigoVehiculoPk + @"</NUMPLACA>
                                <CODCONFIGURACIONUNIDADCARGA>" + apiElementosRndc.remolque.configuracion + @"</CODCONFIGURACIONUNIDADCARGA>                                
                                <CODMARCAVEHICULOCARGA>" + apiElementosRndc.remolque.codigoMarca + @"</CODMARCAVEHICULOCARGA>                                
                                <ANOFABRICACIONVEHICULOCARGA>" + apiElementosRndc.remolque.modelo + @"</ANOFABRICACIONVEHICULOCARGA>                                
                                <PESOVEHICULOVACIO>" + apiElementosRndc.remolque.pesoVacio + @"</PESOVEHICULOVACIO>
                                <CAPACIDADUNIDADCARGA>" + apiElementosRndc.remolque.capacidad + @"</CAPACIDADUNIDADCARGA>
                                <CODCOLORVEHICULOCARGA>" + apiElementosRndc.remolque.codigoColor + @"</CODCOLORVEHICULOCARGA>
                                <CODTIPOCARROCERIA>" + apiElementosRndc.remolque.tipoCarroceria + @"</CODTIPOCARROCERIA>
                                <CODTIPOIDPROPIETARIO>" + apiElementosRndc.remolque.tipoIdentificacionPropietario + @"</CODTIPOIDPROPIETARIO>
                                <NUMIDPROPIETARIO>" + apiElementosRndc.remolque.numeroIdentificacionPropietario + @"</NUMIDPROPIETARIO>
                                <CODTIPOIDTENEDOR>" + apiElementosRndc.remolque.tipoIdentificacionPoseedor + @"</CODTIPOIDTENEDOR>
                                <NUMIDTENEDOR>" + apiElementosRndc.remolque.numeroIdentificacionPoseedor + @"</NUMIDTENEDOR>                                                                                              
                            </variables>
                        </root>";

                        AtenderMensajeRNDCRequest solicitudRemolque = new AtenderMensajeRNDCRequest(xmlRemolque);
                        var           respuestaRemolque             = client.AtenderMensajeRNDC(solicitudRemolque);
                        var           textXmlRemolque    = respuestaRemolque.@return;
                        XmlSerializer serializerRemolque = new XmlSerializer(typeof(RespuestaRndc));
                        using (TextReader reader = new StringReader(textXmlRemolque))
                        {
                            //de esta manera se deserializa
                            retorno = (RespuestaRndc)serializerRemolque.Deserialize(reader);
                            if (retorno.ErrorMSG != null)
                            {
                                string mensajeError = retorno.ErrorMSG.Substring(0, 9);
                                if (mensajeError != "DUPLICADO")
                                {
                                    MessageBox.Show(this, "Remolque " + apiElementosRndc.remolque.codigoVehiculoPk + " " + retorno.ErrorMSG, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    validacion = false;
                                }
                            }
                        }
                    }
                }

                if (validacion == true)
                {
                    //Transmitir guia
                    string xmlGuia = @"<?xml version='1.0' encoding='ISO-8859-1' ?>
                        <root>
                            <acceso>
                                <username>" + apiElementosRndc.configuracion.usuarioRndc + @"</username>
                                <password>" + apiElementosRndc.configuracion.claveRndc + @"</password>
                            </acceso>
                            <solicitud>
                                <tipo>1</tipo>
                                <procesoid>3</procesoid>
                            </solicitud>
                            <variables>
                                <NUMNITEMPRESATRANSPORTE>" + apiElementosRndc.configuracion.empresaRndc + @"</NUMNITEMPRESATRANSPORTE>
                                <CONSECUTIVOREMESA>" + apiElementosRndc.despacho.numero + @"</CONSECUTIVOREMESA>
                                <CODOPERACIONTRANSPORTE>P</CODOPERACIONTRANSPORTE>
                                <CODTIPOEMPAQUE>0</CODTIPOEMPAQUE>
                                <CODNATURALEZACARGA>1</CODNATURALEZACARGA>                                                  
                                <DESCRIPCIONCORTAPRODUCTO>PAQUETES VARIOS</DESCRIPCIONCORTAPRODUCTO>
                                <MERCANCIAREMESA>009880</MERCANCIAREMESA>
                                <CANTIDADCARGADA>" + apiElementosRndc.despacho.pesoReal + @"</CANTIDADCARGADA>
                                <UNIDADMEDIDACAPACIDAD>1</UNIDADMEDIDACAPACIDAD>
                                <CODTIPOIDREMITENTE>C</CODTIPOIDREMITENTE>
                                <NUMIDREMITENTE>222222222</NUMIDREMITENTE>
                                <CODSEDEREMITENTE>" + apiElementosRndc.despacho.codigoCiudadOrigenFk + @"</CODSEDEREMITENTE>
                                <CODTIPOIDDESTINATARIO>C</CODTIPOIDDESTINATARIO>
                                <NUMIDDESTINATARIO>333333333</NUMIDDESTINATARIO>
                                <CODSEDEDESTINATARIO>" + apiElementosRndc.despacho.codigoCiudadDestinoFk + @"</CODSEDEDESTINATARIO>
                                <CODTIPOIDPROPIETARIO>C</CODTIPOIDPROPIETARIO>
                                <NUMIDPROPIETARIO>222222222</NUMIDPROPIETARIO>
                                <CODSEDEPROPIETARIO>" + apiElementosRndc.despacho.codigoCiudadOrigenFk + @"</CODSEDEPROPIETARIO>
                                <DUENOPOLIZA>E</DUENOPOLIZA>
                                <NUMPOLIZATRANSPORTE>" + apiElementosRndc.configuracion.numeroPoliza + @"</NUMPOLIZATRANSPORTE>
                                <FECHAVENCIMIENTOPOLIZACARGA>" + apiElementosRndc.configuracion.fechaVencePoliza + @"</FECHAVENCIMIENTOPOLIZACARGA>
                                <COMPANIASEGURO>" + apiElementosRndc.configuracion.numeroIdentificacionAseguradora + @"</COMPANIASEGURO>
                                <HORASPACTOCARGA>24</HORASPACTOCARGA>
                                <MINUTOSPACTOCARGA>00</MINUTOSPACTOCARGA>
                                <FECHACITAPACTADACARGUE>" + apiElementosRndc.despacho.fechaSalida + @"</FECHACITAPACTADACARGUE>
                                <HORACITAPACTADACARGUE>22:00</HORACITAPACTADACARGUE>
                                <HORASPACTODESCARGUE>72</HORASPACTODESCARGUE>
                                <MINUTOSPACTODESCARGUE>00</MINUTOSPACTODESCARGUE>
                                <FECHACITAPACTADADESCARGUE>" + apiElementosRndc.despacho.fechaSalida + @"</FECHACITAPACTADADESCARGUE>
                                <HORACITAPACTADADESCARGUEREMESA>08:00</HORACITAPACTADADESCARGUEREMESA>
                            </variables>
                        </root>";

                    AtenderMensajeRNDCRequest solicitudGuia = new AtenderMensajeRNDCRequest(xmlGuia);
                    var           respuestaGuia             = client.AtenderMensajeRNDC(solicitudGuia);
                    var           textXmlGuia    = respuestaGuia.@return;
                    XmlSerializer serializerGuia = new XmlSerializer(typeof(RespuestaRndc));
                    using (TextReader reader = new StringReader(textXmlGuia))
                    {
                        //de esta manera se deserializa
                        retorno = (RespuestaRndc)serializerGuia.Deserialize(reader);
                        if (retorno.ErrorMSG != null)
                        {
                            string mensajeError = retorno.ErrorMSG.Substring(0, 9);
                            if (mensajeError != "DUPLICADO")
                            {
                                MessageBox.Show(this, "Guia " + apiElementosRndc.despacho.codigoDespachoPk + " " + retorno.ErrorMSG, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                validacion = false;
                            }
                        }
                    }
                    if (validacion == true)
                    {
                        //Transmitir manifiesto
                        string xmlManifiesto = @"<?xml version='1.0' encoding='ISO-8859-1' ?>
                            <root>
                                <acceso>
                                        <username>" + apiElementosRndc.configuracion.usuarioRndc + @"</username>
                                        <password>" + apiElementosRndc.configuracion.claveRndc + @"</password>
                                </acceso>
                                <solicitud>
                                    <tipo>1</tipo>
                                    <procesoid>4</procesoid>
                                </solicitud>
                                <variables>
                                    <NUMNITEMPRESATRANSPORTE>" + apiElementosRndc.configuracion.empresaRndc + @"</NUMNITEMPRESATRANSPORTE>
                                    <NUMMANIFIESTOCARGA>" + apiElementosRndc.despacho.numero + @"</NUMMANIFIESTOCARGA>
                                    <CODOPERACIONTRANSPORTE>P</CODOPERACIONTRANSPORTE>
                                    <FECHAEXPEDICIONMANIFIESTO>" + apiElementosRndc.despacho.fechaSalida + @"</FECHAEXPEDICIONMANIFIESTO>
                                    <CODMUNICIPIOORIGENMANIFIESTO>" + apiElementosRndc.despacho.codigoCiudadOrigen + @"</CODMUNICIPIOORIGENMANIFIESTO>
                                    <CODMUNICIPIODESTINOMANIFIESTO>" + apiElementosRndc.despacho.codigoCiudadDestino + @"</CODMUNICIPIODESTINOMANIFIESTO>
                                    <CODIDTITULARMANIFIESTO>" + apiElementosRndc.despacho.poseedorTipoIdentificacion + @"</CODIDTITULARMANIFIESTO>
                                    <NUMIDTITULARMANIFIESTO>" + apiElementosRndc.despacho.poseedorNumeroIdentificacion + @"</NUMIDTITULARMANIFIESTO>
                                    <NUMPLACA>" + apiElementosRndc.despacho.codigoVehiculoFk + @"</NUMPLACA>
                                    <NUMPLACAREMOLQUE>" + apiElementosRndc.despacho.codigoVehiculoRemolqueFk + @"</NUMPLACAREMOLQUE>
                                    <CODIDCONDUCTOR>" + apiElementosRndc.despacho.conductorTipoIdentificacion + @"</CODIDCONDUCTOR>
                                    <NUMIDCONDUCTOR>" + apiElementosRndc.despacho.conductorNumeroIdentificacion + @"</NUMIDCONDUCTOR>
                                    <VALORFLETEPACTADOVIAJE>" + apiElementosRndc.despacho.vrFletePago + @"</VALORFLETEPACTADOVIAJE>
                                    <RETENCIONFUENTEMANIFIESTO>" + apiElementosRndc.despacho.vrRetencionFuente + @"</RETENCIONFUENTEMANIFIESTO>
                                    <RETENCIONICAMANIFIESTOCARGA>" + apiElementosRndc.despacho.porcentajeIndustriaComercio + @"</RETENCIONICAMANIFIESTOCARGA>
                                    <VALORANTICIPOMANIFIESTO>" + apiElementosRndc.despacho.vrAnticipo + @"</VALORANTICIPOMANIFIESTO>
                                    <FECHAPAGOSALDOMANIFIESTO>" + apiElementosRndc.despacho.fechaSalida + @"</FECHAPAGOSALDOMANIFIESTO>                                                
                                    <CODRESPONSABLEPAGOCARGUE>E</CODRESPONSABLEPAGOCARGUE>
                                    <CODRESPONSABLEPAGODESCARGUE>E</CODRESPONSABLEPAGODESCARGUE>
                                    <OBSERVACIONES>NADA</OBSERVACIONES>
                                    <CODMUNICIPIOPAGOSALDO>05001000</CODMUNICIPIOPAGOSALDO>
                                    <REMESASMAN procesoid='43'><REMESA><CONSECUTIVOREMESA>" + apiElementosRndc.despacho.numero + @"</CONSECUTIVOREMESA></REMESA></REMESASMAN>
                                </variables>
                            </root>";

                        AtenderMensajeRNDCRequest solicitudManifiesto = new AtenderMensajeRNDCRequest(xmlManifiesto);
                        var           respuestaManifiesto             = client.AtenderMensajeRNDC(solicitudManifiesto);
                        var           textXmlManifiesto    = respuestaManifiesto.@return;
                        XmlSerializer serializerManifiesto = new XmlSerializer(typeof(RespuestaRndc));
                        using (TextReader reader = new StringReader(textXmlManifiesto))
                        {
                            //de esta manera se deserializa
                            retorno = (RespuestaRndc)serializerManifiesto.Deserialize(reader);
                            if (retorno.ErrorMSG != null)
                            {
                                string mensajeError = retorno.ErrorMSG.Substring(0, 9);
                                if (mensajeError != "DUPLICADO")
                                {
                                    MessageBox.Show(this, "Manifiesto " + apiElementosRndc.despacho.codigoDespachoPk + " " + retorno.ErrorMSG, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                                else
                                {
                                    ApiControlador.ApiPost("/transporte/api/windows/despacho/rndcasignar", "{\"codigoDespacho\":\"" + apiElementosRndc.despacho.codigoDespachoPk + "\",\"id\":\"" + apiElementosRndc.despacho.codigoDespachoPk + "\"}");
                                    MessageBox.Show(this, "Se transmitio correctamente el manifiesto", "Envio correcto", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    LlenarDatosApi();
                                }
                            }
                            else
                            {
                                ApiControlador.ApiPost("/transporte/api/windows/despacho/rndcasignar", "{\"codigoDespacho\":\"" + apiElementosRndc.despacho.codigoDespachoPk + "\",\"id\":\"" + retorno.ingresoid + "\"}");
                                MessageBox.Show(this, "Se transmitio correctamente el manifiesto", "Envio correcto", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                LlenarDatosApi();
                            }
                        }
                    }
                }
            }
        }