Пример #1
0
        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);
        }