public async Task <IActionResult> PutPedidoFactura(int id, PedidoFactura pedidoFactura)
        {
            if (id != pedidoFactura.IdPedido)
            {
                return(BadRequest());
            }

            _context.Entry(pedidoFactura).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PedidoFacturaExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <ActionResult <PedidoFactura> > PostPedidoFactura(PedidoFactura pedidoFactura)
        {
            _context.PedidoFactura.Add(pedidoFactura);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (PedidoFacturaExists(pedidoFactura.IdPedido))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtAction("GetPedidoFactura", new { id = pedidoFactura.IdPedido }, pedidoFactura));
        }
Ejemplo n.º 3
0
 protected void CancelarPedido(Object Sender, EventArgs E)
 {
     if (ddlNumPedido.Items.Count > 0)
     {
         PedidoFactura cancelarPedido = new PedidoFactura(this.ddlCodPedido.SelectedValue, Convert.ToUInt32(this.ddlNumPedido.SelectedValue), Tipo);
         if (cancelarPedido.EliminarPed())
         {
             string indexPage = ConfigurationManager.AppSettings["MainIndexPage"];
             Response.Redirect("" + indexPage + "?process=Inventarios.CancelarPedidos&actor=" + Tipo + "&com=" + (cancelarPedido.tieneDatos?"1":"0"));
             //lb.Text += "<br>BIEN : "+cancelarPedido.ProcessMsg;
         }
         else
         {
             lb.Text += "<br>Error : " + cancelarPedido.ProcessMsg;
         }
     }
     else
     {
         Utils.MostrarAlerta(Response, "No se ha seleccionado ningun numero de pedido!");
     }
 }
Ejemplo n.º 4
0
        protected void btnProceso_Click(object sender, System.EventArgs e)
        {
            DateTime fechaHasta;

            int mesVig = Convert.ToInt32(DBFunctions.SingleData("SELECT pmes_mes FROM cinventario"));
            int ano    = Convert.ToInt32(anoVigente.Text);

            fechaHasta = new DateTime(ano, mesVig, 1);
            fechaHasta = fechaHasta.AddMonths(1);
            fechaHasta = fechaHasta.AddDays(-1);
            PedidoFactura cancelarPedido = new PedidoFactura();

            if (cancelarPedido.EliminarPeds(fechaHasta))
            {
                string indexPage = ConfigurationSettings.AppSettings["MainIndexPage"];
                Response.Redirect(indexPage + "?process=Inventarios.CierrePedidos&act=1");
            }
            else
            {
                lb.Text += "<br>Error : " + cancelarPedido.ProcessMsg;
            }
        }
        public dynamic comprar(int idcliente, DispositivoSeVendeEn dispositivoSeVendeEn)
        {
            DispositivoAdquirido adquirido = new DispositivoAdquirido();

            adquirido.Modelo = dispositivoSeVendeEn.ModeloDispotivo;
            adquirido        = _context.DispositivoAdquirido.Add(adquirido).Entity;
            _context.SaveChanges();
            Pedido pedido = new Pedido();

            pedido.IdCliente         = idcliente;
            pedido.Monto             = dispositivoSeVendeEn.Precio;
            pedido.NSerieDispositivo = adquirido.NSerie;
            pedido = _context.Pedido.Add(pedido).Entity;
            _context.SaveChanges();
            Factura factura = new Factura();

            factura.Dia = DateTime.Now.Day;
            factura.Ano = DateTime.Now.Year;
            factura.Mes = DateTime.Now.Month;
            factura     = _context.Factura.Add(factura).Entity;
            _context.SaveChanges();
            PedidoFactura pedidoFactura = new PedidoFactura();

            pedidoFactura.IdPedido = pedido.Id;
            pedidoFactura.NFactura = factura.NFactura;
            _context.PedidoFactura.Add(pedidoFactura);
            CertificadoGarantia certificado = new CertificadoGarantia();
            DispositivoModelo   modelo      = _context.DispositivoModelo.Find(dispositivoSeVendeEn.ModeloDispotivo);
            Tipo tipo = _context.Tipo.Find(modelo.Tipo);

            certificado.NFactura       = factura.NFactura;
            certificado.MesFinGarantia = DateTime.Now.AddMonths(tipo.TiempoDeGarantia).Month;
            certificado.AnoFinGarantia = DateTime.Now.AddMonths(tipo.TiempoDeGarantia).Year;
            certificado = _context.CertificadoGarantia.Add(certificado).Entity;
            _context.SaveChanges();

            try
            {
            }
            catch (DbUpdateException)
            {
                if (DispositivoSeVendeEnExists(dispositivoSeVendeEn.CjDistribuidor))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }



            Dictionary <string, string> parametersFactura = new Dictionary <string, string>();

            parametersFactura.Add("fechacompra", factura.Dia + "/" + factura.Mes + "/" + factura.Ano);
            parametersFactura.Add("nfactura", factura.NFactura + "");
            parametersFactura.Add("tipo", tipo.Nombre);
            parametersFactura.Add("modelo", adquirido.Modelo);
            parametersFactura.Add("precio", dispositivoSeVendeEn.Precio + "");



            facturaset ds = new facturaset();;
            DataTable  t  = ds.Tables.Add("Items");
            DataRow    r;


            t.Columns.Add("fechacompra", Type.GetType("System.String"));
            t.Columns.Add("nfactura", Type.GetType("System.String"));
            t.Columns.Add("tipo", Type.GetType("System.String"));
            t.Columns.Add("modelo", Type.GetType("System.String"));
            t.Columns.Add("precio", Type.GetType("System.String"));


            Debug.WriteLine("otro mas");
            r = t.NewRow();
            r["fechacompra"] = factura.Dia + "/" + factura.Mes + "/" + factura.Ano;
            r["nfactura"]    = factura.NFactura + "";
            r["tipo"]        = tipo.Nombre;
            r["modelo"]      = adquirido.Modelo;
            r["precio"]      = dispositivoSeVendeEn.Precio + "";


            t.Rows.Add(r);



            string nombrereportefactura = "Factura";

            var stringfactura = GenerateReportAsync(nombrereportefactura, t);
            // var juan = File(stringfactura, System.Net.Mime.MediaTypeNames.Application.Octet, nombrereportefactura + ".pdf");
            // SendIt(stringfactura, nombrereportefactura);

            Cliente cliente = _context.Cliente.Find(idcliente);



            garantiaset dsg = new garantiaset();;
            DataTable   t2  = dsg.Tables.Add("Items");
            DataRow     r2;


            t2.Columns.Add("nombre", Type.GetType("System.String"));
            t2.Columns.Add("fechacompra", Type.GetType("System.String"));
            t2.Columns.Add("fechafin", Type.GetType("System.String"));
            t2.Columns.Add("nserie", Type.GetType("System.String"));
            t2.Columns.Add("tipo", Type.GetType("System.String"));
            t2.Columns.Add("modelo", Type.GetType("System.String"));
            t2.Columns.Add("marca", Type.GetType("System.String"));

            Debug.WriteLine("otro mas");
            r2                = t2.NewRow();
            r2["nombre"]      = cliente.Nombre + " " + cliente.PrimerApellido + " " + cliente.SegundoApellido;
            r2["fechacompra"] = "" + factura.Dia + "/" + factura.Mes + "/" + factura.Ano;
            r2["fechafin"]    = certificado.MesFinGarantia + "/" + certificado.AnoFinGarantia;
            r2["nserie"]      = pedido.NSerieDispositivo + "";
            r2["tipo"]        = modelo.Tipo;
            r2["modelo"]      = modelo.Modelo;
            r2["marca"]       = modelo.Marca;

            t2.Rows.Add(r2);



            string nombrereportegarantia = "Garantia";

            byte[] pdfcertificado = GenerateReportAsync(nombrereportegarantia, t2);
            //   var file = File(pdfcertificado, System.Net.Mime.MediaTypeNames.Application.Octet, nombrereportegarantia + ".pdf");

            enviaremail(stringfactura, pdfcertificado, cliente.Email);



            //Pdfs pdfs = new Pdfs();
            //pdfs.pdf_factura = stringfactura;
            //pdfs.idcliente = idcliente;
            //pdfslista.Add(pdfs);
            // Debug.WriteLine(pdfslista.First(pdfs => pdfs.idcliente == idcliente).idcliente);

            return(new { pedido, factura, certificado });
        }
Ejemplo n.º 6
0
        //Guarda la orden de produccion
        public bool GuardarOrdenProduccion()
        {
            bool      estado     = false;
            ArrayList sqlStrings = new ArrayList();
            DataSet   ds;
            //Insertamos el registro en mordenproduccion
            uint numped = uint.Parse(DBFunctions.SingleData("SELECT pped_ultipedi+1 FROM ppedido WHERE pped_codigo='" + prefijoPedido + "'"));

            if (programaProduccion != null)
            {
                sqlStrings.Add("INSERT INTO mordenproduccion VALUES('" + prefijoOrden + "'," + numeroOrden + ",'" + tipo + "','" + fecha + "','A','" + programaProduccion + "','" + nit + "','" + vendedor + "','" + usuario + "','" + proceso + "',NULL,NULL,'" + almacen + "','" + observacion + "')");
            }
            else
            {
                sqlStrings.Add("INSERT INTO mordenproduccion VALUES('" + prefijoOrden + "'," + numeroOrden + ",'" + tipo + "','" + fecha + "','A',NULL,'" + nit + "','" + vendedor + "','" + usuario + "','" + proceso + "',NULL,NULL,'" + almacen + "','" + observacion + "')");
            }

            sqlStrings.Add("UPDATE pdocumento SET pdoc_ultidocu=" + numeroOrden + " WHERE pdoc_codigo='" + prefijoOrden + "'");
            //Insertamos el registro de cada catalogo q se va a ensamblar
            uint          numTrans = uint.Parse(DBFunctions.SingleData("SELECT pdoc_ultidocu+1 FROM pdocumento WHERE pdoc_codigo='" + prefijoTransferencia + "'"));
            PedidoFactura miPedfacMP; //Pedido Transferencia materia prima
            PedidoFactura miPedfacO;  //Pedido Transferencia items que ya estaban disponibles

            ConstruirDtItems();
            totalValorItems = 0;
            string progConsec = programaProduccion != null?DBFunctions.SingleData("SELECT MPROG_CONSECUTIVO FROM MPROGRAMAPRODUCCION WHERE MPROG_NUMERO='" + programaProduccion + "';") : "";

            for (int i = 0; i < dtProduccion.Rows.Count; i++)
            {
                ds = new DataSet();
                if (tipo == "E")
                {                 //Ensamble
                    sqlStrings.Add(
                        "INSERT INTO dordenproduccion " +
                        "VALUES('" + prefijoOrden + "'," + numeroOrden + "," + "'" +
                        dtProduccion.Rows[i]["ENSAMBLE"].ToString() + "'," +
                        "'" + dtProduccion.Rows[i]["CATALOGO"].ToString() + "',NULL," +
                        dtProduccion.Rows[i]["CANTPROC"].ToString() + ",default);");

                    if (programaProduccion != null)
                    {
                        sqlStrings.Add(
                            "UPDATE DPROGRAMAPRODUCCION " +
                            "SET DPROG_TOTAL=DPROG_TOTAL+" + dtProduccion.Rows[i]["CANTPROC"].ToString() + " " +
                            "WHERE MPROG_CONSECUTIVO=" + progConsec + " AND PCAT_CODIGO='" + dtProduccion.Rows[i]["CATALOGO"].ToString() + "';");
                    }
                }
                else
                {                 //Produccion
                    sqlStrings.Add(
                        "INSERT INTO dordenproduccion " +
                        "VALUES('" + prefijoOrden + "'," + numeroOrden + "," + "'" +
                        dtProduccion.Rows[i]["ENSAMBLE"].ToString() + "'," +
                        "NULL,'" + dtProduccion.Rows[i]["CATALOGO"].ToString() + "'," +
                        dtProduccion.Rows[i]["CANTPROC"].ToString() + ",default);");

                    if (programaProduccion != null)
                    {
                        sqlStrings.Add(
                            "UPDATE DPROGRAMAPRODUCCION " +
                            "SET DPROG_TOTAL=DPROG_TOTAL+" + dtProduccion.Rows[i]["CANTPROC"].ToString() + " " +
                            "WHERE MPROG_CONSECUTIVO=" + progConsec + " AND MITE_CODIGO='" + dtProduccion.Rows[i]["CATALOGO"].ToString() + "';");
                    }
                }

                //Agregar items a pedir del ensamble en tabla de pedidos
                AgregarTablaPedidos(
                    dtProduccion.Rows[i]["ENSAMBLE"].ToString(),
                    dtProduccion.Rows[i]["CATALOGO"].ToString(),
                    Convert.ToDouble(dtProduccion.Rows[i]["CANTPROC"]));
            }

            bool facMP = false, facO = false;

            //Crear nuevo pedido factura para items sacados de materia prima
            miPedfacMP = new PedidoFactura("T", prefijoPedido, nit, almacenMatPrima, numped, prefijoOrden, uint.Parse(numeroOrden.ToString()), "C", DateTime.Parse(fecha), observacion, 0, new string[] { }, vendedor, prefijoTransferencia, numTrans, "", 0, 0, totalValorItems, totalValorItems);
            for (int i = 0; i < dtItems.Rows.Count; i++)
            {
                if (Convert.ToBoolean(dtItems.Rows[i]["MATERIAPRIMA"]))
                {
                    miPedfacMP.InsertaFila(dtItems.Rows[i][0].ToString(), double.Parse(dtItems.Rows[i][1].ToString()), double.Parse(dtItems.Rows[i][2].ToString()), 0, 0, double.Parse(dtItems.Rows[i][5].ToString()), "", "");
                    //                             Item                           Cantidad                                    Precio                           Iva Descuento    Cantidad Pedida
                    facMP = true;
                }
            }
            //Actualizar pedido de la orden si se pide materia prima
            if (facMP)
            {
                sqlStrings.Add("UPDATE mordenproduccion SET " +
                               "PPED_CODIPEDI='" + prefijoPedido + "', MPED_NUMEPEDI=" + numped + " " +
                               "WHERE pdoc_codigo='" + prefijoOrden + "' and MORD_NUMEORDE=" + numeroOrden + ";");
            }

            //Crear nuevo pedido factura para items sacados de una orden
            miPedfacO = new PedidoFactura("T", prefijoPedido, nit, almacen, (facMP ? numped + 1 : numped), prefijoOrden, uint.Parse(numeroOrden.ToString()), "C", DateTime.Parse(fecha), observacion, 0, new string[] { }, vendedor, prefijoTransferencia, (facMP ? numTrans + 1 : numTrans), "", 0, 0, totalValorItems, totalValorItems);
            for (int i = 0; i < dtItems.Rows.Count; i++)
            {
                if (!Convert.ToBoolean(dtItems.Rows[i]["MATERIAPRIMA"]))
                {
                    miPedfacO.InsertaFila(dtItems.Rows[i][0].ToString(), double.Parse(dtItems.Rows[i][1].ToString()), double.Parse(dtItems.Rows[i][2].ToString()), 0, 0, double.Parse(dtItems.Rows[i][5].ToString()), "", "");
                    //                             Item                           Cantidad                                    Precio                         Iva Descuento    Cantidad Pedida
                    facO = true;
                }
            }

            if (facO && facMP)
            {
                numTransferencias = 2;
            }
            else
            {
                numTransferencias = 1;
            }

            miPedfacMP.RealizarPedProdFac(false);
            miPedfacO.RealizarPedProdFac(false);

            if (facMP)
            {
                for (int i = 0; i < miPedfacMP.SqlStrings.Count; i++)
                {
                    sqlStrings.Add(miPedfacMP.SqlStrings[i].ToString());
                }
            }
            if (facO)
            {
                for (int i = 0; i < miPedfacO.SqlStrings.Count; i++)
                {
                    sqlStrings.Add(miPedfacO.SqlStrings[i].ToString());
                }
            }

            //Revisar disponibilidad
            double cantAlm;
            string sCantAlm = "", almDisp = "";

            disponible = true;
            for (int i = 0; i < dtItems.Rows.Count; i++)
            {
                if (!Convert.ToBoolean(dtItems.Rows[i]["MATERIAPRIMA"]))
                {
                    almDisp = almacen;
                }
                else
                {
                    almDisp = almacenMatPrima;
                }
                sCantAlm = DBFunctions.SingleData(
                    "SELECT msal_cantactual-msal_cantasig from " +
                    "MSALDOITEMALMACEN where " +
                    "PALM_ALMACEN='" + almDisp + "' AND " +
                    "MITE_CODIGO='" + dtItems.Rows[i][0].ToString() + "' AND " +
                    "PANO_ANO=" + anoInventario + ";");
                if (sCantAlm.Length == 0)
                {
                    sCantAlm = "0";
                }
                cantAlm = Double.Parse(sCantAlm);
                if (cantAlm < Convert.ToDouble(dtItems.Rows[i][1]))
                {
                    mensajes  += "Hacen falta " + (Convert.ToDouble(dtItems.Rows[i][1]) - cantAlm).ToString() + " unidades del item " + dtItems.Rows[i][0].ToString() + " en el almacén " + almDisp + ".\\r\\n";
                    disponible = false;
                }
            }
            if (!disponible)
            {
                return(false);
            }

            if (DBFunctions.Transaction(sqlStrings))
            {
                estado   = true;
                mensajes = "Bien " + DBFunctions.exceptions;
            }
            else
            {
                mensajes += "Error al Guardar " + DBFunctions.exceptions;
            }
            return(estado);
        }
Ejemplo n.º 7
0
        protected void NewAjust(Object Sender, EventArgs E)
        {
            string        Tipo   = lblTipoPedido.Text;
            PedidoFactura pedfac = new PedidoFactura(
                ViewState["TIPOPEDIDO"].ToString(),        // 1 Tipo de Pedido
                ddlCodigo.SelectedValue,                   // 2 Prefijo Documento
                lblNIT.Text,                               // 3 Nit
                lblAlmacen.Text,                           // Almacen
                "",                                        // 5 Vendedor
                Convert.ToUInt32(ddlNumero.SelectedValue), // 6 Numero Pedido
                "",                                        // 7 Prefijo OT
                0,                                         // 8 Numero OT
                Tipo,                                      // 9 Tipo de Pedido
                "",                                        // 10 Cargo
                DateTime.Now,                              // 11 Fecha
                "",                                        // 12 Observaciones
                null
                );

            for (int n = 0; n < dtInserts.Rows.Count; n++) //Se agregan las filas que detallan el pedido
            {
                string codI = "";
                Referencias.Guardar(dtInserts.Rows[n][0].ToString(), ref codI, DBFunctions.SingleData("SELECT plin_tipo FROM plineaitem WHERE plin_codigo='" + dtInserts.Rows[n][11].ToString() + "'"));
                pedfac.InsertaFila(
                    codI,                                   // Codigo de Item
                    0,                                      // Cantidad Facturada
                    Convert.ToDouble(dtInserts.Rows[n][4]), // Precio
                    Convert.ToDouble(dtInserts.Rows[n][5]), // Porcentaje IVA
                    Convert.ToDouble(dtInserts.Rows[n][6]), // Porcentaje Descuento
                    Convert.ToDouble(dtInserts.Rows[n][2]), // Cantidad Pedida
                    "",                                     // Codigo del pedido
                    ""                                      //Numero del pedido
                    );
            }
            bool status = true;

            status = pedfac.ActualizarPed(true);
            if (status)
            {
                Session.Clear();
                string indexPage = ConfigurationManager.AppSettings["MainIndexPage"];
                Response.Redirect("" + indexPage + "?process=Inventarios.ModificarPedido&path=" + Request.QueryString["path"] + "&prefPed=" + pedfac.Coddocumento + "&numPed=" + pedfac.Numpedido + "");
                lbInfo.Text += pedfac.ProcessMsg;
            }

            /*
             * if (!ValidarDatos())
             *  return;
             *
             * string PD = "", ND = "";//Prefijo y Numero de OT (en caso que sea una transferencia a taller)
             * uint numD = 0;
             *
             * string tp = DBFunctions.SingleData("SELECT TPED_CODIGO FROM ppedido where pped_codigo='" + ddlCodigo.SelectedValue + "'");
             * string tVIG = DBFunctions.SingleData("SELECT TVIG_VIGENCIA FROM MNIT where MNIT_NIT ='" + txtNIT.Text + "'");
             * if (tVIG == "B")
             * {
             *  Response.Write("<script language='javascript'>alert('Este Nit NO está Vigente !!!');</script>");
             *  return;
             * }
             * try
             * {
             *  if (tp == "T")
             *  {
             *      PD = ddlTipoOrden.SelectedValue;
             *      ND = ddlNumOrden.SelectedValue;
             *      if (this.ddlNumOrden.SelectedIndex == 0)
             *      {
             *          Response.Write("<script language='javascript'>alert('Debe Seleccionar una orden para la transferencia!');</script>");
             *          return;
             *      }
             *      if (DBFunctions.SingleData("SELECT tdoc_tipodocu FROM pdocumento WHERE pdoc_codigo='" + PD + "' ") == "OT")
             *      {
             *          if (DBFunctions.SingleData("SELECT test_estado FROM MORDEN WHERE pdoc_codigo='" + PD + "' AND MORD_NUMEORDE=" + ND + " ") != "A")
             *          {
             *              Response.Write("<script language='javascript'>alert('El tipo, numero o estado de la Orden de Trabajo NO es valido!');</script>");
             *              return;
             *          }
             *      }
             *      else if (DBFunctions.SingleData("SELECT test_estado FROM MORDENPRODUCCION WHERE pdoc_codigo='" + PD + "' AND MORD_NUMEORDE=" + ND + " ") != "A")
             *      {
             *          Response.Write("<script language='javascript'>alert('El tipo, numero o estado de la Orden de Produccion NO es valido!');</script>");
             *          return;
             *      }
             *
             *      try { numD = Convert.ToUInt32(ND); }
             *      catch { };
             *  }
             * }
             * catch (Exception ex) { lbInfo.Text = ex.ToString(); }
             * //Constructor Tipo 2 Solo Pedido
             * PedidoFactura pedfac = new PedidoFactura(
             *  tp, // 1 Tipo de Pedido
             *  ddlCodigo.SelectedValue, // 2 Prefijo Documento
             *  txtNIT.Text, // 3 Nit
             *  ddlAlmacen.SelectedValue, // Almacen
             *  this.ddlVendedor.SelectedValue, // 5 Vendedor
             *  Convert.ToUInt32(txtNumPed.Text), // 6 Numero Pedido
             *  PD, // 7 Prefijo OT
             *  numD, // 8 Numero OT
             *  Tipo, // 9 Tipo de Pedido
             *  ddlCargo.SelectedValue, // 10 Cargo
             *  calDate.SelectedDate,  // 11 Fecha
             *  txtObs.Text // 12 Observaciones
             *  );
             * int n;
             * for (n = 0; n < dtInserts.Rows.Count; n++) //Se agregan las filas que detallan el pedido
             * {
             *  string codI = "";
             *  Referencias.Guardar(dtInserts.Rows[n][0].ToString(), ref codI, DBFunctions.SingleData("SELECT plin_tipo FROM plineaitem WHERE plin_codigo='" + dtInserts.Rows[n][11].ToString() + "'"));
             *  pedfac.InsertaFila(
             *      codI, // Codigo de Item
             *      0, // Cantidad Facturada
             *      Convert.ToDouble(dtInserts.Rows[n][4]), // Precio
             *      Convert.ToDouble(dtInserts.Rows[n][5]), // Porcentaje IVA
             *      Convert.ToDouble(dtInserts.Rows[n][6]), // Porcentaje Descuento
             *      Convert.ToDouble(dtInserts.Rows[n][2]) // Cantidad Pedida
             *      );
             * }
             * bool status = true;
             * facRealizado = pedfac.RealizarPed(ref status, true);
             * if (status)
             * {
             *  Session.Clear();
             *  if (!procesoCombinado)
             *  {
             *      string indexPage = ConfigurationManager.AppSettings["MainIndexPage"];
             *      Response.Redirect("" + indexPage + "?process=Inventarios.CrearPedido&path=Crear Pedido" + "&actor=" + Tipo + "&numLis=" + pedfac.Numerolista + "&pedCre=0&prefPed=" + pedfac.Coddocumento + "&numPed=" + pedfac.Numpedido + "");
             *      lbInfo.Text += pedfac.ProcessMsg;
             *  }
             * }
             * else
             *  lbInfo.Text += pedfac.ProcessMsg;
             * txtNumPed.Text = DBFunctions.SingleData("SELECT pped_ultipedi+1 FROM ppedido WHERE pped_codigo = '" + ddlCodigo.SelectedValue + "'");
             */
        }
Ejemplo n.º 8
0
        protected void NewAjust(Object Sender, EventArgs E)
        {
            if (!VerificarValoresGrillaFacturacion())
            {
                BindDatas();
                return;
            }
            //QUEDA
            int diasP = -1;

            try{ diasP = Convert.ToInt16(txtDiasP.Text); }
            catch {};
            if (diasP < 0 || diasP > 180)
            {
                BindDatas();
                Utils.MostrarAlerta(Response, "El numero de días de plazo dado NO es válido, debe estar entre 0 y 180!");
                return;
            }
            if (ddlCodDoc.SelectedIndex == 0 && ddlCodDoc.Items.Count > 1)
            {
                BindDatas();
                Utils.MostrarAlerta(Response, "Por favor seleccione el Documento para realizar el proceso !!!");
                return;
            }

            string nLis1 = Request.QueryString["nped"];

            string[] nLis     = nLis1.ToString().Split('-');//Numero de Lista de empaque
            string   ano_cont = DBFunctions.SingleData("SELECT pano_ano from cinventario");
            int      ano      = Convert.ToInt16(ano_cont);
            int      mes      = Convert.ToInt16(DBFunctions.SingleData("select PMES_MES from CINVENTARIO;"));

            if (ano != Convert.ToDateTime(tbDate.Text).Year || mes != Convert.ToDateTime(tbDate.Text).Month)
            {
                Utils.MostrarAlerta(Response, "Fecha NO vigente !!");
                if (HttpContext.Current.User.Identity.Name.ToLower().ToString() == "abarrios")  // EUROTECK temporalmente permite facturar con otras fechas
                {
                }
                else
                {
                    return;
                }
            }
            if (ddlCodDoc.SelectedItem.Value == "Seleccione..")
            {
                Utils.MostrarAlerta(Response, "Usted NO ha configurado un documento del tipo FC en esta sede para este proceso..!");
                return;
            }
            btnAjus.Enabled = false; // apaga el boton de facturar

            PedidoFactura pedfac = new PedidoFactura(txtNIT.Text, Convert.ToDateTime(tbDate.Text), txtObs.Text,
                                                     //											1				2					3
                                                     diasP, nLis1, ddlVendedor.SelectedItem.Value, ddlCodDoc.SelectedItem.Value, Convert.ToUInt32(txtNumDoc.Text),
                                                                                                   //4    5               6                           7                           8
                                                     Convert.ToDouble(txtTotIF.Text.Substring(1)), Convert.ToDouble(tbIvaFlts.Text.Substring(1)),
                                                                                                   //9                                                                              10
                                                     Convert.ToDouble(txtSubTotal.Text.Substring(1)) - Convert.ToDouble(txtDesc.Text.Substring(1)),
                                                                                                   //11
                                                     Convert.ToDouble(txtTotal.Text.Substring(1)), // 12
                                                     kit,                                          // 13
                                                     AnoA,                                         //14
                                                     almacen                                       // 15
                                                     );

            if (hdCargoTrans.Value != "")
            {
                pedfac.CargoOrden = hdCargoTrans.Value;
            }
            int n;

            for (n = 0; n < dtInserts.Rows.Count; n++)
            {
                string codI = "";
                Referencias.Guardar(dtInserts.Rows[n][0].ToString(), ref codI, DBFunctions.SingleData("SELECT plin_tipo FROM plineaitem WHERE plin_codigo='" + dtInserts.Rows[n][11].ToString() + "'"));
                pedfac.InsertaFila(codI, Convert.ToDouble(dtInserts.Rows[n][2]),
                                   //1
                                   Convert.ToDouble(dtInserts.Rows[n][3]), Convert.ToDouble(dtInserts.Rows[n][4]),
                                   //2											3
                                   Convert.ToDouble(dtInserts.Rows[n][5]), Convert.ToDouble(dtInserts.Rows[n][9]), dtInserts.Rows[n]["PPED_CODIGO"].ToString(), dtInserts.Rows[n]["MPED_NUMEPEDI"].ToString());
                //4											5                                                   6                                       7
            }

            // causacion de retenciones en la venta
            Retencion retencion = new Retencion(
                txtNIT.Text,

                ddlCodDoc.SelectedItem.Value,                                                                  // PrefijoFactura,
                Convert.ToInt32(txtNumDoc.Text),                                                               // NumeroFactura,
                Convert.ToDouble(txtSubTotal.Text.Substring(1)) - Convert.ToDouble(txtDesc.Text.Substring(1)), //ValorFactura,
                Convert.ToDouble(txtIVA.Text.Substring(1)),                                                    //ValorIva,
                "R", true);

            if (pedfac.RealizarFac(true))
            {
                if (retencion.Guardar_Retenciones(true))
                {
                    string indexPage     = ConfigurationManager.AppSettings["MainIndexPage"];
                    string indexAjaxPage = ConfigurationManager.AppSettings["MainAjaxPage"];
                    Session.Clear();

                    contaOnline.contabilizarOnline(ddlCodDoc.SelectedItem.Value, Convert.ToInt32(txtNumDoc.Text), DateTime.Now, ddlAlmacen.SelectedValue);

                    if (Request.QueryString["orig"] == "Inventarios.ListasEmpaque")
                    {
                        Response.Redirect(indexPage + "?process=Inventarios.ListasEmpaque&actor=C&subprocess=Fact&prefF=" + pedfac.Coddocumentof + "&numF=" + pedfac.Numdocumentof + "&factGen=1");
                    }
                    //Response.Redirect("" + indexPage + "?process=Inventarios.VistaImpresion&prefFact="+pedfac.Coddocumentof+"&numFact="+pedfac.Numdocumentof+"&cliente="+Tipo+"&orig="+Request.QueryString["orig"]+"");
                    else if (Request.QueryString["orig"] == "Inventarios.CrearPedido")
                    {
                        Response.Redirect(indexAjaxPage + "?process=Inventarios.CrearPedido&actor=C&subprocess=Fact&prefF=" + pedfac.Coddocumentof + "&numF=" + pedfac.Numdocumentof + "");
                    }
                    //Response.Redirect(indexPage+"?process=Inventarios.ListasEmpaque&actor=C&subprocess=Fact");
                    //lbInfo.Text +="<br>BIEN :" +pedfac.ProcessMsg;
                }
                else
                {
                    lbInfo.Text += retencion.Mensajes;
                }
            }
            else
            {
                lbInfo.Text += "<br>ERROR :" + pedfac.ProcessMsg;
            }
        }
Ejemplo n.º 9
0
        //Autorizar
        public string Autorizar(ref string strFormatos)
        {
            ArrayList arrSql           = new ArrayList();
            string    estado           = (autorizar == "N")?"F":"A";
            double    valorTransSinIva = 0;

            idGarantia = "";
            arrSql.Add("INSERT INTO MGARANTIAAUTORIZACION VALUES(" +
                       "DEFAULT,'" + prefOrden + "'," + numOrden + ",'" + fechaProceso.ToString("yyyy-MM-dd") + "','" +
                       nitConcesionario + "','" + personaSolicita + "','" + vendedor + "','" + autorizar + "','" + VIN + "','" +
                       observacionG + "','" + observacionR + "');");
            arrSql.Add("UPDATE MORDENPOSTVENTA SET MGAR_NUMERO=IDENTITY_VAL_LOCAL() " +
                       "WHERE PDOC_CODIGO='" + prefOrden + "' AND MORD_NUMEORDE=" + numOrden + ";");
            if (autorizar == "N")
            {
                arrSql.Add("UPDATE MORDEN SET TEST_ESTADO='F' " +
                           "WHERE PDOC_CODIGO='" + prefOrden + "' AND MORD_NUMEORDE=" + numOrden + ";");
            }
            string estadoA = "";
            double valA = 0, valM = 0;

            for (int i = 0; i < dtOperaciones.Rows.Count; i++)
            {
                if (Convert.ToInt16(dtOperaciones.Rows[i]["usar"]) == 1)
                {
                    estadoA = "C";
                }
                else
                {
                    estadoA = "X";
                }
                if (autorizar == "N")
                {
                    estadoA = "X";
                }
                arrSql.Add("UPDATE dordenoperacion SET TEST_ESTADO='" + estadoA + "' " +
                           "WHERE PDOC_CODIGO='" + dtOperaciones.Rows[i]["PDOC_CODIGO"].ToString() + "' AND MORD_NUMEORDE=" + dtOperaciones.Rows[i]["MORD_NUMEORDE"].ToString() + " AND PTEM_OPERACION='" + dtOperaciones.Rows[i]["PTEM_OPERACION"].ToString() + "';");
            }
            for (int i = 0; i < dtRepuestos.Rows.Count; i++)
            {
                valM = Convert.ToDouble(dtRepuestos.Rows[i]["precio"]) * Convert.ToDouble(dtRepuestos.Rows[i]["cantidad"]);
                valA = Convert.ToDouble(dtRepuestos.Rows[i]["valaprueba"]);
                if (autorizar == "N")
                {
                    valA = 0;
                }
                if (valA == 0)
                {
                    estadoA = "X";
                }
                else
                {
                    if (valA == valM)
                    {
                        estadoA           = "C";
                        valorTransSinIva += valM;
                    }
                    else
                    {
                        estadoA = "P";
                    }
                }
                arrSql.Add("UPDATE dordenitemspostventa SET TEST_ESTADO='" + estadoA + "', MITE_VALAPROB = " + valA + " " +
                           "WHERE PDOC_CODIGO='" + dtRepuestos.Rows[i]["PDOC_CODIGO"].ToString() + "' AND MORD_NUMEORDE=" + dtRepuestos.Rows[i]["MORD_NUMEORDE"].ToString() + " AND MITE_CODIGO='" + dtRepuestos.Rows[i]["MITE_CODIGO"].ToString() + "';");
            }
            if (autorizar != "N" && valorTransSinIva > 0)
            {
                DataSet dsPostventa = new DataSet();
                DBFunctions.Request(dsPostventa, IncludeSchema.NO, "SELECT * FROM CPOSTVENTA;");
                DataRow  drPostventa  = dsPostventa.Tables[0].Rows[0];
                DateTime fechaEntrada = Convert.ToDateTime(DBFunctions.SingleData("SELECT mord_entrada from morden where PDOC_CODIGO='" + prefOrden + "' and MORD_NUMEORDE=" + numOrden + ";"));
                uint     numeroPedido = Convert.ToUInt32(DBFunctions.SingleData("SELECT pped_ultipedi + 1 FROM ppedido WHERE pped_codigo='" + drPostventa["PPED_CODIGO"].ToString() + "'"));
                while (DBFunctions.RecordExist("SELECT * FROM mpedidoitem WHERE pped_codigo='" + drPostventa["PPED_CODIGO"].ToString() + "' AND mped_numepedi=" + numeroPedido + ""))
                {
                    numeroPedido += 1;
                }
                uint numeroDocumentoTransferencia = Convert.ToUInt32(DBFunctions.SingleData("SELECT pdoc_ultidocu+1 FROM pdocumento WHERE pdoc_codigo='" + drPostventa["PDOC_CODITRANS"].ToString() + "'"));
                while (DBFunctions.RecordExist("SELECT * FROM mfacturacliente WHERE pdoc_codigo='" + drPostventa["PDOC_CODITRANS"].ToString() + "' AND mfac_numedocu=" + numeroDocumentoTransferencia + ""))
                {
                    numeroDocumentoTransferencia += 1;
                }
                PedidoFactura miPedido = new PedidoFactura("T", drPostventa["PPED_CODIGO"].ToString(), drPostventa["MNIT_NITTRANS"].ToString(), drPostventa["PALM_ALMACENTRANS"].ToString(), numeroPedido, prefOrden, numOrden, "C", fechaEntrada, observacionR, 0, new String[0], vendedor, drPostventa["PDOC_CODITRANS"].ToString(), numeroDocumentoTransferencia, "G", 0, 0, valorTransSinIva, valorTransSinIva);
                for (int i = 0; i < dtRepuestos.Rows.Count; i++)
                {
                    valM = Convert.ToDouble(dtRepuestos.Rows[i]["precio"]) * Convert.ToDouble(dtRepuestos.Rows[i]["cantidad"]);
                    valA = Convert.ToDouble(dtRepuestos.Rows[i]["valaprueba"]);
                    if (valA > 0 && valA == valM)
                    {
                        miPedido.InsertaFila(dtRepuestos.Rows[i]["mite_codigo"].ToString(), Convert.ToDouble(dtRepuestos.Rows[i]["cantidad"]), Convert.ToDouble(dtRepuestos.Rows[i]["precio"]), 0, 0, Convert.ToDouble(dtRepuestos.Rows[i]["cantidad"]), "", "");
                    }
                }
                miPedido.RealizarPedFac(false);
                for (int j = 0; j < miPedido.SqlStrings.Count; j++)
                {
                    arrSql.Add(miPedido.SqlStrings[j].ToString());
                }
                strFormatos += "&tipoPED=" + drPostventa["PPED_CODIGO"].ToString() + "&numPED=" + numeroPedido;
                strFormatos += "&prefTRA=" + drPostventa["PDOC_CODITRANS"].ToString() + "&numTRA=" + numeroDocumentoTransferencia;
            }
            if (DBFunctions.Transaction(arrSql))
            {
                idGarantia = DBFunctions.SingleData("SELECT MAX(MGAR_NUMERO) FROM MGARANTIAAUTORIZACION;");
                return("");
            }
            else
            {
                return(DBFunctions.exceptions);
            }
        }
Ejemplo n.º 10
0
        public bool Importar(DataSet maestroPedidoDataSet, DataSet detallePedidoDataSet)
        {
            bool satisfactorio = false;

            string resultados = string.Empty;

            foreach (DataTable maestroPedidoDataTable in maestroPedidoDataSet.Tables)
            {
                foreach (DataRow maestroPedidoDataRow in maestroPedidoDataTable.Rows)
                {
                    bool valido = false;

                    int numeroOrdenTaller = 0;

                    string tipoPedido = DBFunctions.SingleData("SELECT TPED_CODIGO FROM ppedido where pped_codigo='" + maestroPedidoDataRow[PREFIJOPEDIDO] + "'");

                    try
                    {
                        if (tipoPedido == "T")
                        {
                            numeroOrdenTaller = 0;

                            if ((maestroPedidoDataRow[PREFIJOORDENTALLER].ToString() == "") || (maestroPedidoDataRow[NUMEROORDENTALLER].ToString() == ""))
                            {
                                resultados += string.Format("El pedido {0} - {1} es una trasferencia de taller, pero no tiene una orden de trabajo asociada.{2}", maestroPedidoDataRow[PREFIJOPEDIDO], maestroPedidoDataRow[NUMEROPEDIDO], SALTOLINEA);
                                valido      = false;
                            }
                            if (DBFunctions.SingleData("SELECT test_estado FROM MORDEN WHERE pdoc_codigo='" + maestroPedidoDataRow[PREFIJOORDENTALLER] + "' AND MORD_NUMEORDE=" + maestroPedidoDataRow[NUMEROORDENTALLER]) != "A")
                            {
                                resultados += string.Format("El prefijo, numero o estado de la orden de taller {0} - {1} de la orden de pedido {2} - {3} no es valido.{4}", maestroPedidoDataRow[PREFIJOORDENTALLER], maestroPedidoDataRow[NUMEROORDENTALLER], maestroPedidoDataRow[PREFIJOPEDIDO], maestroPedidoDataRow[NUMEROPEDIDO], SALTOLINEA);
                                valido      = false;
                            }

                            try { numeroOrdenTaller = Convert.ToInt32(maestroPedidoDataRow[NUMEROORDENTALLER]); }
                            catch { };
                        }
                    }
                    catch (Exception excepcion) { resultados = excepcion.ToString(); }

                    //Constructor Tipo 2 Solo Pedido
                    PedidoFactura pedidoFactura = new PedidoFactura(
                        tipoPedido,                                                // 1 Tipo de Pedido
                        maestroPedidoDataRow[PREFIJOPEDIDO].ToString(),            // 2 Prefijo Documento
                        maestroPedidoDataRow[NIT].ToString(),                      // 3 Nit
                        maestroPedidoDataRow[ALMACEN].ToString(),                  // Almacen
                        maestroPedidoDataRow[VENDEDOR].ToString(),                 // 5 Vendedor
                        Convert.ToUInt32(maestroPedidoDataRow[NUMEROPEDIDO]),      // 6 Numero Pedido
                        maestroPedidoDataRow[PREFIJOORDENTALLER].ToString(),       // 7 Prefijo OT
                        Convert.ToUInt32(maestroPedidoDataRow[NUMEROORDENTALLER]), // 8 Numero OT
                        maestroPedidoDataRow[CLASE].ToString(),                    // 9 Tipo de Pedido
                        maestroPedidoDataRow[CARGO].ToString(),                    // 10 Cargo
                        Convert.ToDateTime(maestroPedidoDataRow[FECHA]),           // 11 Fecha
                        maestroPedidoDataRow[OBSERVACIONES].ToString(),
                        null                                                       // 12 Observaciones
                        );

                    DataRow[] detallePedidoDataRows = detallePedidoDataSet.Tables[0].Select(PREFIJOPEDIDO + "=" + maestroPedidoDataRow[PREFIJOPEDIDO] + " AND " + NUMEROPEDIDO + "=" + maestroPedidoDataRow[NUMEROPEDIDO]);

                    foreach (DataRow detallePedidoDataRow in detallePedidoDataRows)                    //Se agregan las filas que detallan el pedido
                    {
                        string codigoItemInvertido = "";

                        Referencias.Guardar((string)detallePedidoDataRow[CODIGOITEM], ref codigoItemInvertido, DBFunctions.SingleData("SELECT plin_tipo FROM plineaitem WHERE plin_codigo='" + detallePedidoDataRow[LINEAITEM] + "'"));
                        pedidoFactura.InsertaFila(
                            codigoItemInvertido,                                         // Codigo de Item
                            0,                                                           // Cantidad Facturada
                            Convert.ToDouble(detallePedidoDataRow[PRECIO]),              // Precio
                            Convert.ToDouble(detallePedidoDataRow[PORCENTAJEIVA]),       // Porcentaje IVA
                            Convert.ToDouble(detallePedidoDataRow[PORCENTAJEDESCUENTO]), // Porcentaje Descuento
                            Convert.ToDouble(detallePedidoDataRow[CANTIDADPEDIDO]),      // Cantidad Pedida
                            "",                                                          // Codigo pedido
                            ""                                                           // Numero pedido
                            );
                    }

                    bool status = true;

                    bool realizoPedido = pedidoFactura.RealizarPed(ref status, true);

                    if (status)
                    {
                        Session.Clear();
                    }
                    else
                    {
                        lb.Text += pedidoFactura.ProcessMsg;
                    }
                }
            }

            //txtNumPed.Text = DBFunctions.SingleData("SELECT pped_ultipedi+1 FROM ppedido WHERE pped_codigo='"+ddlCodigo.SelectedValue+"'");

            return(satisfactorio);
        }
Ejemplo n.º 11
0
        protected void RealizarAsignacion()
        {
            int    maxLista, maxL;
            string tip = "";

            try{ maxLista = Convert.ToInt32(DBFunctions.SingleData("SELECT CINV_TAMLISTEMPA FROM CINVENTARIO;")); }
            catch { maxLista = 0; }

            //Ahora volvemos a recorrer la tabla y creamos las listas de empaque o facturas que se necesiten
            for (int i = 0; i < dtBackOrder.Rows.Count; i++)
            {
                //Primero revisamos si el pedido es de cliente o es tipo trasnferencia
                if (DBFunctions.SingleData("SELECT tped_codigo FROM ppedido WHERE pped_codigo='" + dtBackOrder.Rows[i][4].ToString() + "'") == "T")
                {
                    DataRow[] selection = dtBackOrder.Select("OTRELACIONADA='" + dtBackOrder.Rows[i][14].ToString() + "' AND NIT='" + dtBackOrder.Rows[i][6].ToString() + "' AND ALMACEN='" + dtBackOrder.Rows[i][9].ToString() + "'");
                    string    numTrans  = this.RevisarListaEmpaque(selection);
                    if (numTrans != "")
                    {
                        dtBackOrder.Rows[i][13] = numTrans;
                    }
                    else
                    {
                        //dtBackOrder.Rows[i][13] = "Pendiente";
                        double totalTrans = 0;
                        for (int j = 0; j < selection.Length; j++)
                        {
                            totalTrans += Convert.ToDouble(selection[j][12]);
                        }
                        uint   numeroTransferencia = Convert.ToUInt32(DBFunctions.SingleData("SELECT pdoc_ultidocu+1 FROM pdocumento WHERE pdoc_codigo='" + ddlPrefTrans.SelectedValue + "'"));
                        string codVend             = "";
                        if (rblTipoConsulta.SelectedValue == "OP")
                        {
                            codVend = DBFunctions.SingleData("SELECT pven_codigo FROM mordenproduccion WHERE pdoc_codigo='" + (dtBackOrder.Rows[i][14].ToString().Split('-'))[0] + "' AND mord_numeorde=" + (dtBackOrder.Rows[i][14].ToString().Split('-'))[1] + "");
                            tip     = "OP";
                        }
                        else
                        {
                            codVend = DBFunctions.SingleData("SELECT pven_codigo FROM morden WHERE pdoc_codigo='" + (dtBackOrder.Rows[i][14].ToString().Split('-'))[0] + "' AND mord_numeorde=" + (dtBackOrder.Rows[i][14].ToString().Split('-'))[1] + "");
                            tip     = "OT";
                        }
                        PedidoFactura transferencia = new PedidoFactura(dtBackOrder.Rows[i][6].ToString(), ddlPrefTrans.SelectedValue, numeroTransferencia, DateTime.Now, 0, "", 0, 0, totalTrans, totalTrans, dtBackOrder.Rows[i][9].ToString(), codVend, tip);
                        for (int j = 0; j < selection.Length; j++)
                        {
                            double porcDesc   = Convert.ToDouble(DBFunctions.SingleData("SELECT dped_porcdesc FROM dpedidoitem WHERE pped_codigo='" + selection[j][4].ToString() + "' AND mped_numepedi=" + selection[j][5].ToString() + " AND mite_codigo='" + selection[j][0].ToString() + "'"));
                            double cantPedida = Convert.ToDouble(DBFunctions.SingleData("SELECT dped_cantpedi FROM dpedidoitem WHERE pped_codigo='" + selection[j][4].ToString() + "' AND mped_numepedi=" + selection[j][5].ToString() + " AND mite_codigo='" + selection[j][0].ToString() + "'"));
                            transferencia.InsertaFila(selection[j][0].ToString(), Convert.ToDouble(selection[j][10]), Convert.ToDouble(selection[j][11]), 0, cantPedida, porcDesc, selection[j][3].ToString());
                        }
                        //Ahora realizamos grabamos la transferencia
                        if (transferencia.RealizarFacDir())
                        {
                            dtBackOrder.Rows[i][13] = ddlPrefTrans.SelectedValue + "-" + numeroTransferencia.ToString();
                            rblTipoConsulta.Enabled = lbInfo1.Enabled = tbCodigoItem.Enabled = ddlLinea.Enabled = btnRealizar.Enabled = lbInfo2.Enabled = ddlTipoPedido.Enabled = ddlPrefTrans.Enabled = false;
                            btnReiniciar.Visible    = true;
                            FormatosDocumentos formatoFactura = new FormatosDocumentos();
                            try
                            {
                                formatoFactura.Prefijo = ddlPrefTrans.SelectedValue;
                                formatoFactura.Numero  = (int)numeroTransferencia;
                                formatoFactura.Codigo  = DBFunctions.SingleData("SELECT sfor_codigo FROM dbxschema.pdocumento WHERE pdoc_codigo='" + ddlPrefTrans.SelectedValue + "'");
                                if (formatoFactura.Codigo != string.Empty)
                                {
                                    if (formatoFactura.Cargar_Formato())
                                    {
                                        Response.Write("<script language:javascript>w=window.open('" + formatoFactura.Documento + "','','HEIGHT=600,WIDTH=800');</script>");
                                    }
                                }
                            }
                            catch
                            {
                                lb.Text = "Error al generar el formato pedido 1. Detalles : <br>" + formatoFactura.Mensajes;
                            }
                        }
                        else
                        {
                            lb.Text += "<br>Error " + transferencia.ProcessMsg;
                        }
                    }
                }
                else
                {
                    //Aqui debemos revisar si dentro de esta consulta ya existen listas de empaques para este nit en este almacen
                    DataRow[] selection = dtBackOrder.Select("NIT='" + dtBackOrder.Rows[i][6].ToString() + "' AND ALMACEN='" + dtBackOrder.Rows[i][9].ToString() + "'");
                    //Ahora revisamos si ya existe una lista de empaque para este cliente en este almacen
                    string numLis = this.RevisarListaEmpaque(selection);
                    if (numLis != "")
                    {
                        dtBackOrder.Rows[i][13] = numLis;
                    }
                    else
                    {
                        uint         numeroLista    = Convert.ToUInt32(DBFunctions.SingleData("SELECT coalesce(MAX(mlis_numero),0) FROM mlistaempaque")) + 1;
                        ListaEmpaque listaBackOrder = new ListaEmpaque(numeroLista, dtBackOrder.Rows[i][6].ToString(), DateTime.Now, dtBackOrder.Rows[i][9].ToString(), HttpContext.Current.User.Identity.Name.ToLower(), "C", null);
                        maxL = maxLista;
                        if (maxL == 0)
                        {
                            maxL = selection.Length;
                        }
                        for (int j = 0; j < selection.Length && j < maxL; j++)
                        {
                            listaBackOrder.AgregarItem(selection[j][0].ToString(), selection[j][4].ToString(), selection[j][5].ToString(), Convert.ToInt32(selection[j][10]), Convert.ToDouble(selection[j][11]));
                        }
                        //Vamos a almacenar la lista de empaque en la base de datos
                        if (listaBackOrder.AlmacenarLista(true))
                        {
                            dtBackOrder.Rows[i][13] = numeroLista.ToString();
                            ddlNPedido.Enabled      = ddlTPedido.Enabled = rblTipoConsulta.Enabled = lbInfo1.Enabled = tbCodigoItem.Enabled = ddlLinea.Enabled = btnRealizar.Enabled = lbInfo2.Enabled = ddlTipoPedido.Enabled = ddlPrefTrans.Enabled = false;
                            btnReiniciar.Visible    = true;
                        }
                        else
                        {
                            lb.Text += "<br><br>Error : " + listaBackOrder.ProcessMsg;
                        }
                    }
                }
            }
            BindDgBackOrder();
        }