//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); }
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 + "'"); */ }
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; } }
//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); } }
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); }
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(); }