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); }