public List <datos> GuardarOrdenes(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(','); 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); } } foreach (DsHojaRutaRepartidorOrdenes.DatosCBRow drr in dso.Rows) { ICodigoBarras cb = CodigoBarrasFactory.GetCodigoBarras(); string NroCodigo = cb.GetDatosByOrdenRetiroConceptoFacturacion(Convert.ToInt32(drr.OrdenRetiroConceptoFacturacion)); if (NroCodigo != drr.CodigoBarras)//quiere decir que se realizaron modificaciones en el numero de los CB //Se tiene que dar de baja el que tenia anteriormente y usar el que estan cargando. { 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); } 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; cb.ClienteID = 0; //pasa primero el cb viejo y despues el nuevo if (cb.CambiaEstadoCBOrdenRetiro(NroCodigo, drr.CodigoBarras, drr.OrdenRetiroConceptoFacturacion) == false) { throw new Exception("Codigo de barra" + drr.CodigoBarras + " inválido"); } } else {//tiene que descontar del cliente corporativo cb.ConceptoFacturacionID = conceptoid; cb.ClienteID = Convert.ToInt32(clienteid); cb.OrdenRetiroID = Convert.ToInt32(drr.OrdenRetiroID); cb.UnidadVentaID = uv; cb.AgenciaID = 0; if (cb.CambiaEstadoCBOrdenRetiro(NroCodigo, drr.CodigoBarras, drr.OrdenRetiroConceptoFacturacion) == false) { throw new Exception("Codigo de barra " + drr.CodigoBarras + " inválido"); } } } 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); } return(persons); }