public List <datos> ValidaOrdenes(string nombrep, string AgenciaConcet) { var persons = new List <datos>(); //elimina las llaves string prueba1 = nombrep.Replace("}", " "); string prueba = prueba1.Replace("{", " "); //elimina los puntos string datos = prueba.Replace(":", " "); DsHojaRutaRepartidorOrdenes.DatosCBDataTable dso = new DsHojaRutaRepartidorOrdenes.DatosCBDataTable(); string[] separadas; string[] CadaLinea; separadas = datos.Split('$'); int tamaño = separadas.Count(); for (int i = 0; i < separadas.Count(); i++) { CadaLinea = separadas[i].Split(new string[] { ",\"" }, StringSplitOptions.None); string ConceptoOrdenID = CadaLinea[0].Replace("OrdenRetiroConceptoFacturacion", " "); if (ConceptoOrdenID != "") { string OrdenRetiro = CadaLinea[1].Replace("ordenRetiro", " "); string OrdenRetiroBien = OrdenRetiro.ToString().Replace('"', ' ').Trim(); string descripcion = CadaLinea[2].Replace("descripProducto", " "); string descripcionBien = descripcion.ToString().Replace('"', ' ').Trim(); string importe = CadaLinea[3].Replace("Importe", " "); string importeBien = importe.ToString().Replace('"', ' ').Trim(); string cb = CadaLinea[4].Replace("CB", " "); string cbBien = cb.ToString().Replace('"', ' ').Trim(); string ConceptoOrdenIDBien = ConceptoOrdenID.ToString().Replace('"', ' ').Trim(); dso.AddDatosCBRow(OrdenRetiroBien, descripcionBien, importeBien, cbBien, ConceptoOrdenIDBien); } } try { foreach (DsHojaRutaRepartidorOrdenes.DatosCBRow drr in dso.Rows) { if (drr.CodigoBarras != "0") { ICodigoBarras cb2 = CodigoBarrasFactory.GetCodigoBarras(); string NroCodigo = cb2.GetDatosByOrdenRetiroConceptoFacturacion(Convert.ToInt32(drr.OrdenRetiroConceptoFacturacion)); if (NroCodigo != drr.CodigoBarras) { int conceptoid = 0; int clienteid = 0; int uv = 0; IOrdenRetiro or = OrdenRetiroFactory.GetOrdenRetiroFactory(); DsOrdenRetiro dsor = new DsOrdenRetiro(); or.OrdenRetiroID = Convert.ToInt32(drr.OrdenRetiroID); dsor = or.ClienteCorporativoinOR(); foreach (DsOrdenRetiro.DatosOrdenCBRow drror in dsor.DatosOrdenCB) { clienteid = drror.IsClienteIDNull() ? 0 : Convert.ToInt32(drror.ClienteID); uv = drror.IsUnidadVentaIDNull() ? 0 : Convert.ToInt32(drror.UnidadVentaID); conceptoid = drror.IsConceptoFacturacionIDNull() ? 0 : Convert.ToInt32(drror.ConceptoFacturacionID); } ICodigoBarras cb = CodigoBarrasFactory.GetCodigoBarras(); if (clienteid == 0)//el codigo de barra tiene que salir de la agencia { cb.ConceptoFacturacionID = conceptoid; cb.AgenciaID = Convert.ToInt32(AgenciaConcet); cb.OrdenRetiroID = Convert.ToInt32(drr.OrdenRetiroID); cb.UnidadVentaID = uv; if (cb.ValidaCBbyAgenciaID(drr.CodigoBarras) == 0) { throw new Exception(" Codigo de barra " + drr.CodigoBarras + " inválido"); } } else { //tiene que sacar del stock del del cliente corporativo cb.ConceptoFacturacionID = conceptoid; cb.ClienteID = Convert.ToInt32(clienteid); cb.OrdenRetiroID = Convert.ToInt32(drr.OrdenRetiroID); cb.UnidadVentaID = uv; if (cb.ValidaCBbyClienteID(drr.CodigoBarras) == 0) { throw new Exception(" Codigo de barra " + drr.CodigoBarras + " inválido"); } } } } else { throw new Exception("Debe ingresar un Código de Barras."); } datos person = new datos { OrdenRetiroConceptoFacturacion = Convert.ToInt32(drr.OrdenRetiroConceptoFacturacion), ordenRetiro = Convert.ToInt32(drr.OrdenRetiroID), descripProducto = drr.Descripcion, Importe = Convert.ToDouble(drr.ImporteConcepto), CB = drr.CodigoBarras }; persons.Add(person); } } catch (Exception ex) { string mensaje = ex.Message; if (mensaje.Trim() == "Codigo de barra <INPUT style= WIDTH 96% id=1_ class= editable inline-edit-cell ui-widget-content ui-corner-all role=textbox name= rowid= 1 > inválido") { throw new Exception("Guardar cambios antes de validar."); } else { throw new Exception(ex.Message); } // if(mensaje="" } return(persons); }