예제 #1
0
        public static void Agregar(SalidaProducto p)
        {
            //listaPedidos.Add(p);

            using (SqlConnection con = new SqlConnection(SqlServer.CADENA_CONEXION))
            {
                con.Open();
                //cabecera
                string         textoCMD    = "INSERT INTO remision (fecharemision, nrodocumento, destinatario, direccion, motivoremision_id) output INSERTED.id VALUES (@fecharemision, @nrodocumento, @destinatario, @direccion, @motivoremision_id)";
                SqlCommand     cmd         = new SqlCommand(textoCMD, con);
                SqlTransaction transaction = con.BeginTransaction("SampleTransaction");
                cmd.Transaction = transaction;
                try
                {
                    //parametros
                    SqlParameter p1 = new SqlParameter("@fecharemision", p.fecharemision);
                    SqlParameter p2 = new SqlParameter("@nrodocumento", p.nrodocumento);
                    SqlParameter p3 = new SqlParameter("@destinatario", p.destinatario);
                    SqlParameter p4 = new SqlParameter("@direccion", p.direccion);
                    SqlParameter p5 = new SqlParameter("@motivoremision_id", p.motivo.id);

                    p1.SqlDbType = System.Data.SqlDbType.DateTime;
                    p2.SqlDbType = System.Data.SqlDbType.VarChar;
                    p3.SqlDbType = System.Data.SqlDbType.VarChar;
                    p4.SqlDbType = System.Data.SqlDbType.VarChar;
                    p5.SqlDbType = System.Data.SqlDbType.Int;
                    cmd.Parameters.Add(p1);
                    cmd.Parameters.Add(p2);
                    cmd.Parameters.Add(p3);
                    cmd.Parameters.Add(p4);
                    cmd.Parameters.Add(p5);

                    int id_remision = (int)cmd.ExecuteScalar();


                    //DETALLE
                    foreach (DetalleSalidaProducto dp in p.detalle)
                    {
                        //insert para el detalle
                        string     textoCMD2 = "INSERT INTO DetalleRemision(producto_id, cantidadRemitida, remision_id) VALUES (@producto_id, @cantidadRemitida, @remision_id)";
                        SqlCommand cmd2      = new SqlCommand(textoCMD2, con);
                        //Pasamos los parametros

                        SqlParameter p6 = new SqlParameter("@producto_id", dp.producto.id);
                        SqlParameter p7 = new SqlParameter("@cantidadRemitida", dp.cantidad);
                        SqlParameter p8 = new SqlParameter("@remision_id", id_remision);
                        if (ActualizarStock(dp.producto.id, dp.cantidad) == 1)
                        {
                            p6.SqlDbType = System.Data.SqlDbType.Int;
                            p7.SqlDbType = System.Data.SqlDbType.Int;
                            p8.SqlDbType = System.Data.SqlDbType.Int;
                            cmd2.Parameters.Add(p6);
                            cmd2.Parameters.Add(p7);
                            cmd2.Parameters.Add(p8);
                            cmd2.Transaction = transaction;
                            cmd2.ExecuteNonQuery();
                            transaction.Commit();
                        }
                        else
                        {
                            transaction.Rollback();
                            break;
                        }
                    }

                    con.Close();
                }
                catch (Exception ex) {
                }
            }
        }
예제 #2
0
 public static void Eliminar(SalidaProducto p)
 {
     listaEntrada.Remove(p);
 }