Exemple #1
0
        private bool fncEntregar(string vProducto, string vUbi, string vLote, decimal vCan, string vCajas, string vOFL)
        {
            bool vOk = false;

            using (SqlConnection dbConec = new SqlConnection(cParamXml.strConecProduc_Prueb))
            {
                dbConec.Open();
                SqlTransaction dbTr = dbConec.BeginTransaction();
                try
                {
                    //Damos de alta la cabecera
                    cAlbaranesVenta.CabAlb oCabAlb = new cAlbaranesVenta.CabAlb();
                    int vNumAlb = 0;
                    if (oCabAlb.fncAltaCab(oCab, "S", dbConec, dbTr, ref vNumAlb))
                    {
                        //Damos de alta la linea
                        cAlbaranesVenta.LinAlb oLinAlb = new cAlbaranesVenta.LinAlb();
                        oLinAlb.Empresa     = cParamXml.Emp;
                        oLinAlb.NumAlb      = vNumAlb;
                        oLinAlb.Producto    = vProd;
                        oLinAlb.Descripción = txDesProd.Text;
                        oLinAlb.Cantidad    = vCan;
                        string vLoteOfl = vLote;
                        if (vOFL != "")
                        {
                            vLoteOfl += " | " + vOFL;
                        }
                        oLinAlb.Lote        = vLoteOfl;
                        oLinAlb.Cajas       = vCajas;
                        oLinAlb.Impresiones = 0;
                        oLinAlb.NumPrep     = vNumPrep;
                        if (oLinAlb.fncAltaLin(dbConec, dbTr))
                        {
                            //Grabamos la cantridad entregada de la preparación
                            if (cEntregas.LinPrepEntregas.fncMasCantidadServida(cParamXml.Emp.ToString(), vNumPrep, vLin, vCan.ToString(), dbConec, dbTr))
                            {
                                //Si la entrega es de un pedido de modifica la cantidad entregada del pedido
                                if (vNumPed != 0)
                                {
                                    if (!cPedidosVenta.LinVenta.fncMasCantidadServida(cParamXml.Emp.ToString(), vNumPed, vLinPed, vCan.ToString(), dbConec, dbTr))
                                    {
                                        return(vOk);
                                    }
                                }
                                //Movimientos de Producto
                                cMovimientos.Articulo oMov = new cMovimientos.Articulo();
                                decimal vdCan = vCan * -1;
                                if (oMov.fncAlta(cParamXml.Emp, "Salida", DateTime.Now, DateTime.Now, cParamXml.AlmacenMat, vProd, txDesProd.Text,
                                                 vdCan.ToString(), vNumPrep.ToString(), vOFL, vUbi, vLote))
                                {
                                    vOk = true;
                                }
                            }
                        }
                    }

                    //Descactivamos las cajas seleccionadas
                    if ((vCajas != "") & (vOFL != ""))
                    {
                        string[] vmCajas = vCajas.Split(',');
                        for (int i = 0; i < vmCajas.Length; i++)
                        {
                            string vSql   = "";
                            string vTabla = " GC_OrdenProdCajas";
                            string vCampo = "Entregada";
                            string vWhere = " IdOF = '" + vOFL + "' AND (NumCajaBolsa = " + vmCajas[i] + ")";
                            vSql = cConstantes.SQL_UP_Update;
                            vSql = vSql.Replace("[?1]", "[" + vCampo + "]");
                            vSql = vSql.Replace("[?2]", "1");
                            vSql = vSql.Replace("[?3]", vWhere);
                            vSql = vSql.Replace("[?99]", vTabla);
                            int viOk = SQLDataAccess.GEN_ExecuteNonQuery(vSql, cParamXml.strConecProduc_Prueb);
                        }
                    }
                }
                catch {}

                if (vOk)
                {
                    //Al terminar correctamente los cambios se graban
                    dbTr.Commit();
                    vOk = true;
                }
                else
                {
                    //Al terminar con error se revierten los cambios
                    dbTr.Rollback();
                    vOk = false;
                }
            }


            return(vOk);
        }
        private bool fncElimEntregar(string vReg)
        {
            //_Res += ID + "#" +vAlb + "#" + vLin + "#" + vIdOF + "#" + vCaja + "#" + vCan + "#" + vLote + "|";

            bool vOk = false;

            cEntregas.LinPrepEntregas linp = (cEntregas.LinPrepEntregas)bS2.Current;
            int    vNumPrep = linp.NumPrep;
            int    vLinPrep = linp.LinPrep;
            string vsNumPed = linp.PedLocal;

            if (vsNumPed == "")
            {
                vsNumPed = "0";
            }
            int    vNumPed = Convert.ToInt32(vsNumPed);
            int    vLinPed = linp.LinPedLocal;
            string vProd   = linp.Producto;


            using (SqlConnection dbConec = new SqlConnection(cParamXml.strConecProduc_Prueb))
            {
                dbConec.Open();
                SqlTransaction dbTr = dbConec.BeginTransaction();
                try
                {
                    string[] vmReg = vReg.Split('|');
                    for (int i = 0; i < vmReg.Length; i++)
                    {
                        string vR = vmReg[i].ToString();
                        if (vR.Length < 2)
                        {
                            break;
                        }

                        string[] vmR = vR.Split('#');

                        int    vID    = Convert.ToInt32(vmR[0].ToString());
                        string vOFL   = vmR[3].ToString();
                        string vCajas = vmR[4].ToString();
                        string vCan   = vmR[5].ToString();
                        string vLote  = vmR[6].ToString();
                        string vUbi   = cMovimientos.Articulo.fncTraeUbi(cParamXml.Emp, vNumPrep.ToString(), vProd, "Salida", "-" + vCan, vLote);

                        int vNumAlb = 0;
                        //Damos de Baja la linea
                        cAlbaranesVenta.LinAlb oLinAlb = new cAlbaranesVenta.LinAlb();
                        if (oLinAlb.fncBaja(vID, dbConec, dbTr))
                        {
                            //Grabamos la cantridad entregada de la preparación
                            if (cEntregas.LinPrepEntregas.fncMenosCantidadServida(cParamXml.Emp.ToString(), vNumPrep, vLinPrep, vCan.ToString(), dbConec, dbTr))
                            {
                                //Si la entrega es de un pedido de modifica la cantidad entregada del pedido
                                if (vNumPed != 0)
                                {
                                    if (!cPedidosVenta.LinVenta.fncMenosCantidadServida(cParamXml.Emp.ToString(), vNumPed, vLinPed, vCan.ToString(), dbConec, dbTr))
                                    {
                                        return(vOk);
                                    }
                                }
                                //Movimientos de Producto
                                cMovimientos.Articulo oMov = new cMovimientos.Articulo();

                                if (oMov.fncAlta(cParamXml.Emp, "Entrada", DateTime.Now, DateTime.Now, cParamXml.AlmacenMat, vProd, txDesProd.Text,
                                                 vCan.ToString(), vNumPrep.ToString(), vOFL, vUbi, vLote))
                                {
                                    vOk = true;
                                }
                            }
                        }

                        //Descactivamos las cajas seleccionadas
                        if ((vCajas != "") & (vOFL != ""))
                        {
                            string[] vmCajas = vCajas.Split(',');
                            for (int i2 = 0; i2 < vmCajas.Length; i2++)
                            {
                                string vSql   = "";
                                string vTabla = " GC_OrdenProdCajas";
                                string vCampo = "Entregada";
                                string vWhere = " IdOF = '" + vOFL.Trim() + "' AND (NumCajaBolsa = " + vmCajas[i2] + ")";
                                vSql = cConstantes.SQL_UP_Update;
                                vSql = vSql.Replace("[?1]", "[" + vCampo + "]");
                                vSql = vSql.Replace("[?2]", "0");
                                vSql = vSql.Replace("[?3]", vWhere);
                                vSql = vSql.Replace("[?99]", vTabla);
                                int viOk = SQLDataAccess.GEN_ExecuteNonQuery(vSql, cParamXml.strConecProduc_Prueb);
                            }
                        }
                    }
                }
                catch { vOk = false; }

                if (vOk)
                {
                    //Al terminar correctamente los cambios se graban
                    dbTr.Commit();
                    vOk = true;
                }
                else
                {
                    //Al terminar con error se revierten los cambios
                    dbTr.Rollback();
                    vOk = false;
                }
            }


            return(vOk);
        }