Пример #1
0
        public void AceptarModificacion(object sender, System.EventArgs e)
        {
            ListaEmpaque listaModificar = new ListaEmpaque(Convert.ToUInt32(Request.QueryString["numLista"]));

            if (listaModificar.ModificarLista(dtListaEmpaque, dtInserts))
            {
                //lb.Text += "<br>Bien Modificao : "+listaModificar.ProcessMsg;
                Response.Redirect("" + indexPage + "?process=Inventarios.ListasEmpaque&actor=C&subprocess=Mod");
            }
            else
            {
                lb.Text += "<br>Error : " + listaModificar.ProcessMsg;
            }
        }
Пример #2
0
        //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;
            }
        }
Пример #3
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();
        }