コード例 #1
0
        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);
        }