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