//Seleccionar public void btnSeleccionar_Click(object sender, System.EventArgs e) { DataTable dtPedidos = (DataTable)ViewState["PEDIDOS"]; ArrayList sqlStrings = new ArrayList(); string sel = ""; string ano_cinv = DBFunctions.SingleData("SELECT pano_ano from cinventario"); uint numeroLista = Convert.ToUInt32(DBFunctions.SingleData("SELECT coalesce(MAX(mlis_numero),0) FROM mlistaempaque")) + 1; for (int n = 0; n < dtPedidos.Rows.Count; n++) { sel = ((DropDownList)dgPedidos.Rows[n].FindControl("ddlAccion")).SelectedValue; if (sel.Length > 0) { sqlStrings.Add( "UPDATE MPEDIDOCLIENTEAUTORIZACION " + "SET MPED_AUTORIZA='" + sel + "', SUSU_CODIGO='" + HttpContext.Current.User.Identity.Name.ToLower() + "', MPED_FECHA='" + DateTime.Now.ToString("yyyy-MM-dd") + "' " + "WHERE PDOC_CODIGO='" + dtPedidos.Rows[n]["PPED_CODIGO"] + "' AND MPED_NUMEPEDI=" + dtPedidos.Rows[n]["MPED_NUMEPEDI"] + ";"); } if (sel == "S") { DataSet dsPedido = new DataSet(); DataSet dsPedidoI = new DataSet(); DataRow drP, drI; DBFunctions.Request(dsPedido, IncludeSchema.NO, "SELECT * FROM MPEDIDOITEM " + "WHERE PPED_CODIGO='" + dtPedidos.Rows[n]["PPED_CODIGO"] + "' AND MPED_NUMEPEDI=" + dtPedidos.Rows[n]["MPED_NUMEPEDI"] + ";"); DBFunctions.Request(dsPedidoI, IncludeSchema.NO, "SELECT * FROM DPEDIDOITEM " + "WHERE PPED_CODIGO='" + dtPedidos.Rows[n]["PPED_CODIGO"] + "' AND MPED_NUMEPEDI=" + dtPedidos.Rows[n]["MPED_NUMEPEDI"] + ";"); if (dsPedido.Tables[0].Rows.Count == 0 || dsPedidoI.Tables[0].Rows.Count == 0) { lblInfo.Text = "Error: no se pudo consultar el pedido " + dtPedidos.Rows[n]["PPED_CODIGO"] + "-" + dtPedidos.Rows[n]["MPED_NUMEPEDI"]; Response.Write("<script language:javascript>alert('Error: no se pudo consultar el pedido " + dtPedidos.Rows[n]["PPED_CODIGO"] + "-" + dtPedidos.Rows[n]["MPED_NUMEPEDI"] + ".');</script>"); return; } drP = dsPedido.Tables[0].Rows[0]; ListaEmpaque listaBackOrder = new ListaEmpaque(numeroLista, drP["MNIT_NIT"].ToString(), DateTime.Now, drP["PALM_ALMACEN"].ToString(), HttpContext.Current.User.Identity.Name.ToLower(), "C", null); double cantidadDisponible, cantidadAsignada, valorPublico; for (int i = 0; i < dsPedidoI.Tables[0].Rows.Count; i++) { drI = dsPedidoI.Tables[0].Rows[i]; //Cuadrar cantidades cantidadAsignada = Convert.ToDouble(drI["DPED_CANTPEDI"]) - Convert.ToDouble(drI["DPED_CANTASIG"]) - Convert.ToDouble(drI["DPED_CANTFACT"]); try{ cantidadDisponible = Convert.ToDouble(DBFunctions.SingleData("SELECT MSAL_CANTACTUAL - abs(msal_cantasig) FROM MSALDOITEMALMACEN WHERE MITE_CODIGO='" + drI["MITE_CODIGO"].ToString() + "' AND PALM_ALMACEN='" + drP["PALM_ALMACEN"].ToString() + "' AND PANO_ANO=" + ano_cinv + ";")); } catch { cantidadDisponible = 0; } valorPublico = Convert.ToDouble(drI["DPED_VALOUNIT"]); if (cantidadDisponible < cantidadAsignada) { cantidadAsignada = cantidadDisponible; } // if(cantidadAsignada==0) // { // Response.Write("<script language:javascript>alert('No hay cantidad disponible para el item "+drI["MITE_CODIGO"].ToString()+" en el pedido "+dtPedidos.Rows[n]["PPED_CODIGO"].ToString()+"-"+dtPedidos.Rows[n]["MPED_NUMEPEDI"].ToString()+".');</script>"); // return; // } listaBackOrder.AgregarItem(drI["MITE_CODIGO"].ToString(), drI["PPED_CODIGO"].ToString(), drI["MPED_NUMEPEDI"].ToString(), Convert.ToInt32(cantidadAsignada), valorPublico); } listaBackOrder.AlmacenarLista(false); for (int i = 0; i < listaBackOrder.SqlStrings.Count; i++) { sqlStrings.Add(listaBackOrder.SqlStrings[i]); } numeroLista++; } } if (sqlStrings.Count == 0) { Response.Write("<script language:javascript>alert('No seleccionó pedidos.');</script>"); return; } if (DBFunctions.Transaction(sqlStrings)) { Response.Redirect(ConfigurationManager.AppSettings["MainIndexPage"] + "?process=Inventarios.AutorizacionPedidoMayor&path=" + Request.QueryString["path"] + "&upd=1"); } else { lblInfo.Text += "<br>Error : Detalles <br>" + DBFunctions.exceptions; } }
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(); }